4–7 Nov 2019

Extensible autonomous transactions in the world of microservices

Divya Nagar (Nexmo, the Vonage API Platform), Nicola Giacchetta (Vonage)
15:5516:40 Thursday, 7 November 2019
Location: M4/M5
Secondary topics:  Case Study, Framework-focused
Average rating: ****.
(4.00, 1 rating)

Who is this presentation for?

  • Software engineers and software architects

Level

Intermediate

Description

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.

Prerequisite knowledge

  • 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
Photo of Divya Nagar

Divya Nagar

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.

Photo of Nicola Giacchetta

Nicola Giacchetta

Vonage

Nicola Giacchetta is a software engineer at Vonage. His key area of interest is data-centric distributed systems, services high-availability, data replication and data migration.

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)

Contact us

confreg@oreilly.com

For conference registration information and customer service

partners@oreilly.com

For more information on community discounts and trade opportunities with O’Reilly conferences

Become a sponsor

For information on exhibiting or sponsoring a conference

pr@oreilly.com

For media/analyst press inquires