10 Comments

Nicely explained Raul.

Competing consumer patterns is quite interesting.

Also, thanks for the mention!

Expand full comment

One of my favorites, Saurabh.

Thanks!

Expand full comment

I remember the first time I played around with Read Replicas. It boosted the overall performance of the app since we had many read requests and a few write requests.

Thank you for the mention, Raul! 🙏

Expand full comment

They offer a good ROI!

Thanks, Petar.

Expand full comment

The Read Load replicas is pattern not so difficult to put in place.

It's very easy to setup a Aurora database and start writing and reading. However, when the load starts to be high the problems come.

I would recommend to setup the Read Load replicas from the beginning because it's not so expensive and your system will be able to scale from the minute zero.

Good article Raúl!

Expand full comment

Aurora definitively help. Replication is simple to setup and we don't need to pay for the extra storage.

Thanks for adding, Marcos!

Expand full comment

competing consumer pattern looks interesting, nice article.

Expand full comment

Indeed it is.

Thanks, Neo!

Expand full comment

I guess another way to put this is:

What is required in realtime should by synchronous

and everything else should be asynchronous.

The first method which involves publisher and subscriber is more of an async approach to process the data where the caller is not waiting for any response.

The second method to increase more read replicas is certainly a great way to increase read throughput of the system.

Well put, Raul. 🙌

Expand full comment

Another horizontal scaling strategy (in event driven systems) could be to have separate read and write models abstracted away within separate services; this is typical of CQRS based systems.

Expand full comment