Overview of how Netflix keeps over 200M people in sync and on different devices.
Netflix is a tech giant that supports humongous number of devices and with that, data. The fact that all devices are synced is another aspect that makes it more interesting.
The users want to watch a Movie on their Mobile and switch to Laptops, continuing where they left off. They also expect information such as Membership plans, or Profile updates to be equal on all their devices. At its peak, Netflix backend has to exchange over 150 K+ events per second with the devices.
How is it possible to deal with all this traffic?
Netflix uses a specific MicroService that works as follows:
The Event management Engine collects events from other backend services and passes them to Amazon SQS queue.
Amazon SQS queues are sharded based on priority of Events to allow the tuning of System Configuration and scaling policies. For example, events related to a child’s profile maturity are highly prioritized.
AWS Instance Clusters subscribe to the queues and process the events, generating notifications for all the devices.
The notifications are sent to an outbound messaging system and to a Cassandra database to allow both push and pull communication with the devices.
To keep things running smoothly, Netflix makes sure only devices that are on and connected get specific live updates. Old updates that aren’t useful anymore or extra copies of the same message don’t get sent.
For an animated illustration, please check here.
Thank you stopping by and see you in the next one.
Credits fernando franco