AppSync Realtime Message Delivery Guarantee

0

Hi,

We're leveraging Appsync's real-time subscription/mutation capabilities in our app. Just wanted to check and confirm if there's any message delivery guarantee built-in in Appsync? What if the message is sent via WebSocket but not received by a web client (due to the nature of TCP)? is there some kind of Ack/retry mechanism?

couldn't find much info related to message delivery guarantee (real-time WebSockets) in the Appsync docs

2 Answers
0

Hello!
Maybe this sequence diagram can help you understand AppSync's GraphQL subscriptions mechanism.

AppSync does not provide an ACK / Retry mechanism in case the client does not receive the event.
However, I think it would have a considerable effort to manage any retry or guarantee mechanisms for each client.

However you could do this test:

  1. Register a client to a subscription
  2. Disconnect client connection (simulating network failure)
  3. Invoke a mutation
  4. See what happen client side
  5. Reconnect the network to the client
  6. See what happen client side.

(I would expect that you will not receive the mutation event)

I also recommend that you use the AWS suggested clients: https://docs.aws.amazon.com/en_en/appsync/latest/devguide/building-a-client-app.html

answered 2 years ago
0

There are two main modes of "mobile notifications", one is based on store-and-forward messages such as Apple Push Notification Service (APNS) or Google's, and the second is based on push/subscriptions such as AWS Simple Notification Service (SNS).

Most use cases of GraphQL and implementations are similar to the latter use case, which means that if the endpoint is not available the notification is dropped. These use cases are designed on the time-sensitivity of the notification and creating a long queue of all the notifications that you missed is usually less relevant. The assumption in these use cases is that if a mobile device is not connected to the network, the mobile application will pull the latest status of the data upon reconnection.

MLGuy
answered 2 years ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions