Breaking a Monolithic API into Microservices at Uber

In a recent blog post, Uber engineer Emily Reinhold described how they broke a monolithic API into a modular, flexible microservice architecture. She highlighted a few key design and architectural choices that were key to Uber’s migration effort.

How GitHub Designed its New Load Balancer

GitHub has been at work for the last year to develop a new load balancer, the GitHub Load Balancer (GLB), aimed to be able to scale to billions of connections per day running on commodity hardware. GitHub engineers Joe Williams and Theo Julienne explain how GLB was designed.

Migrating Medium to React.js and GraphQL

Medium migrated their existing system to a new architecture based on React.js and GraphQL. Two major goals of their endeavour, as Medium engineer Sasha T. Solomon explained, were making the new system incrementally available to users while not hindering development of new features.

GRIT Protocol Enables Distributed Transactions across Multi-Database Microservices

At the IEEE International Conference on Data Engineering (ICDE) 2019, eBay engineers presented a paper introducing a protocol for distributed ACID transactions using multiple databases, GRIT. Support for multiple databases is key to enabling GRIT’s use across microservices, which are usually implemented in different languages and may use multiple underlying databases.

How DoorDash Rearchitected its Cache to Improve Scalability and Performance

DoorDash rearchitected the heterogeneous caching system they were using across all of their microservices and created a common, multi-layered cache providing a generic mechanism and solving a number of issues coming from the adoption of a fragmented cache.