Scaling websocket notifications

0

I'm building an e-commerce app and each and every day, we have a special offer at noon. Every customer is notified at noon and connects to the website where they are added to a queue. They open a websocket between the browser and the backend (API Gateway) and at some point they want to send a notification to all users through the websocket (via a lambda looping over all connectionId), which takes too long (around 50k users).

I had a look at different solutions (MQTT over websocket with AWS IOT, Appsync), but both need Cognito, and I already have another authentication mechanism (in-house).

I saw it is also possible to use signature v4 for MQTT over websocket, we could have an endpoint to get this temporary signature but I'm not sure that's a really good practice.

I also thought about spreading (fan out) the sending of notifications.

Am I missing a better alternative?

1 Answer
0
Accepted Answer

Broadcasting over WebSockets is built into AppSync. Some articles on the subject:

https://aws.amazon.com/blogs/mobile/aws-appsync-real-time-reference-architecture/ https://aws.amazon.com/blogs/mobile/appsync-realtime/ https://aws.amazon.com/blogs/mobile/appsync-websockets-python/

There's no looping over a list of connections. It's true brodcasting.

AWS
awsed
answered 4 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