Senior Track Roadmap

System Design: service mesh architecture

This course explains service mesh architecture using a single Ruby application as the reference case. It separates in-process service objects from network services and shows why a network call can end with no answer. It covers the sidecar pattern, using Thruster in front of Puma as a small example, and the spectrum of places where cross-cutting concerns can live. It then describes the control plane, the failures a mesh adds, and an inventory of the application that shows a mesh would connect nothing.

What you'll learn

  • ✓The difference between an in-process service object and a service reached over a network
  • ✓How the sidecar pattern moves network handling out of application code
  • ✓Where cross-cutting concerns can live, from application code to a control plane
  • ✓How the data plane and the control plane divide the work of a mesh
  • ✓Failures a mesh adds: retry storms, version skew and the strict mTLS trap
  • ✓Reading an architecture decision from an inventory of processes, languages and calls
Free preview · Lesson 1 3 min read

The word service means two things

This application contains 54 files ending in _service.rb. It needs no service mesh, and understanding why those two facts sit together is most of what this course is for.

Read the full lesson free →

Curriculum

7 lessons
Type to start searching...