Extensible autonomous transactions in the world of microservices
Who is this presentation for?
- Software engineers and software architects
Over the last decade or so, there’s been a strong movement toward a flexible style of building large systems that have lately been called microservices. When you move to microservices, data distribution becomes the biggest problem: how to move data transactionally in a distributed architecture of hundreds of microservices while keeping the system in a consistent state and how to provide services with the data required correctly in minimal time.
Divya Nagar and Nicola Giacchetta faced a similar problem while scaling the services at Nexmo, the Vonage API Platform and they explore how the company is solving it. Other ways to solve these problems are to keep a huge shared global database, which is the violation of microservice fundamentals, or create an internal Death Star, in which failure in a single machine you didn’t even know existed can crash your entire system. These solutions are already in place and eventually become more and more difficult to modify and scale.
Divya and Nicola outline the solution in use at Nexmo, the Vonage API Platform, which is made by deconstructing the database and creating an application-independent scale and data-aware layer. By using this, the application can run independently without worrying about the data. They explore the data handling patterns of replica management for consistent and partition tolerance in data stores; command and query responsibility separation to handle high-throughput writes and virtual-buckets-based replication to manage read hot-spotting on a subset of the data corpus; data precompute and time-travel to create a time line-consistent view of data across multiple distributed systems; data sourcing from database-replication mechanisms; local transactions and async relaying to an analytics platform; and bypassing network bottlenecks like centralized load-balancers by using data-placement-aware smart local proxies and sidecars.
- A working knowledge of basic distributed systems and microservices
What you'll learn
- Learn to decouple the applications from the data layer and other data dependencies to reduce cascading system failures
- Understand the data patterns and how to use them according to your system requirements
Nexmo, the Vonage API Platform
Divya Nagar is a software engineer at Nexmo, the Vonage API Platform, where she works with awesome people who are building a scale-aware layer at Nexmo to create a highly available infrastructure which can scale. Her primary interests are data-centric distributed systems and databases.
Nexmo, The Vonage API Platform
Nicola Giacchetta is a software engineer at Nexmo, the Vonage API Platform. His key area of interest is data-centric distributed systems and databases.
Leave a Comment or Question
Help us make this conference the best it can be for you. Have questions you'd like this speaker to address? Suggestions for issues that deserve extra attention? Feedback that you'd like to share with the speaker and other attendees?
Join the conversation here (requires login)
For conference registration information and customer service
For more information on community discounts and trade opportunities with O’Reilly conferences
For information on exhibiting or sponsoring a conference
View a complete list of O'Reilly Software Architecture contacts