Big Tech Digest #13: How Uber Serves Over 40 Million RPS Using a Cache, Overview of Discord Streaming, Meta loves Python, Designing Microservices Using Saga Patterns At Walmart, and more!
2024-03-12 | Big Tech Digest #13
Happy Tuesday 👋!
This week, I’m presenting 7 notable articles published since the last Big Tech Digest issue from Uber, Discord, Walmart, Shopify, DoorDash, and more!
Also, I’d like to share an excellent newsletter, called Tech Talks Weekly, that has been recently started. Tech Talks Weekly delivers all the recently uploaded tech conference videos from over 100 engineering conferences (here’s the full list) like Devoxx, GOTO, NDC, StrangeLoop, LeadDev, and many more (see recent issues #4 and #5) right into your inbox. I highly encourage to subscribe if you want to stay up to date with new conference video uploads:
One thing you could do to help me grow Big Tech Digest is to share it with connections. Any share is much appreciated 🙏!
Without further ado, let’s get started!
// 🏆 Top 2 must-reads
1. "How Uber Serves Over 40 Million Reads Per Second from Online Storage Using an Integrated Cache"
by Multiple authors ⸱ Uber ⸱ 14 min read ⸱ 15 Feb
Discusses the architecture of Docstore, a distributed database built on top of MySQL
Explores the limitations of vertical and horizontal scaling to improve database latencies
Presents the development of an integrated caching solution, CacheFront, for Docstore
Covers the design and implementation of CacheFront, including cache invalidation and deduplication
Shares the features of CacheFront, including compare cache, cache warming, and negative caching
Explains the use of Redis sharding, circuit breakers, and adaptive timeouts in CacheFront
2. "Designing Microservices Using Database Per Service and Saga Patterns"
by Piyush Shrivastava ⸱ Walmart ⸱ 6 min read ⸱ 01 Mar
Gives an overview of how to run queries that require data from more than one service using API composition
Covers advantages of using database per service pattern over single shared database
Shares when not to use database per service pattern
Introduces the Saga pattern and its implementation in microservices
Goes through choreography and orchestration as different ways to implement the Saga pattern
// 📬 Optional reads
a.k.a. The Best of the Rest!
"How It All Goes Live: An Overview of Discord’s Streaming Technology"
by Josh Stratton ⸱ Discord ⸱ 1 min read ⸱ 07 Mar
Describes how Go Live streams are transmitted to Discord's backend and routed to viewers
Explores how the stream is constrained by network data limits to ensure it is watchable for every viewer
Covers the complicated process of estimating bandwidth and the potential impact on the user's experience
Shares how Discord uses different WebRTC bandwidth estimators for different use cases
"Why imports are important in JS"
by Jaden Baptista ⸱ Algolia ⸱ 6 min read ⸱ 04 Mar
Explains how the import statement in ES2015 is more readable and easier to understand than its predecessor require()
Covers some compromises made in the import syntax for practicality, such as the use of brackets and *
Shares the importance of namespaces in software functionality and the benefits of keeping file size down
"Introducing DoorDash’s In-House Search Engine"
by many authors ⸱ Doordash ⸱ 6 min read ⸱ 27 Feb
Describes the migration from Elasticsearch to a homegrown search engine
Shares the use of Apache Lucene as the core of the new search engine
Introduces the segment-replication model and separate indexing and searching traffic
Explains the design of the broker service for query aggregation and rewriting
Covers the implementation of tenant isolation and search stacks for data and traffic isolation
"Meta loves Python"
by Pascal Hartig ⸱ Meta ⸱ 1 min read ⸱ 12 Feb
Describes new features developed by Meta for Python 3.12
Explores new hooks for custom JITs, improvements to the type system, and faster comprehensions
Shares insights on how and why these new features were built
Discusses Meta engineers' engagement with the Python community
"Improving Shopify App’s Performance"
by Talha Naqvi ⸱ Shopify ⸱ 7 min read ⸱ 05 Mar
Discusses setting and tracking performance goals for a mobile app
Shares common performance bottlenecks and solutions
Describes the importance of leveraging cache to its fullest
Covers the benefits of pre-warming the cache for key screens
That’s it for today! I hope you enjoyed this issue. Let me know in the comments what have you learned 💡!
Thanks for reading Big Tech Digest. Please don’t forget to 🗣️ spread the word and see you in two weeks!
Delivered bi-weekly to your inbox, Big Tech Digest brings you a collection of links to the latest engineering blog posts from +300 Big Tech companies and startups like Airbnb, Uber, Netflix or Meta. Aimed at Software Engineers and AI/ML folks at any level, Big Tech Digest is focused on interesting solutions to engineering problems that tech companies come across. No marketing or non-tech stuff.
Subscribe now to receive a new issue directly to your inbox every two weeks!