Are API Gateway Websocket APIs treated as asynchronous?



I'm looking at setting up a Websocket API, with a Lambda as the message handler.

If my Lambda can't scale up quick enough, what happens? Will the messages be retried by API Gateway? Will the client think the message worked, or will they get an error? And if retries happen, how many - is there any possibility the message will get lost and I won't know about it?

Thanks for the help. Excited to try this!

asked 2 years ago124 views
2 Answers

Unless you configure the route as two-way, client to WebSocket API is one-way. In the case, when Lambda invocation is failed, the client will not receive anything. If you configure the route as two-way, the client will receive the error response.
Alternatively, you could configure the route one-way and make your Lambda to send ACK message to the client. In this case, you need to handle when the client doesn't receive the ACK in a given amount of time.

API Gateway doesn't retry for the message. You may use SQS for the better reliability and re-drive the message.
Client - API Gateway - SQS - Lambda

But still client-side retry is also recommended since API Gateway to SQS can be failed as well.

answered 2 years ago

Thanks for the reply! It's good to know that we only get one try at sending the message.

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