Microservices & Distributed Systems
Overview
- Building Microservices
Sam Newman - Book - Building Domain Driven Microservices
Chandra Ramalingam - Blog Post - Awesome Microservices .NET Core Resources
Web Site - What are microservices?
Chris Richardson - Blog Post - MicroservicePrerequisites
Martin Fowler - Blog Post - Microservices Patterns
Chris Richardson - Book
Communication Patterns
- Decision tree for deciding on integration method
Savvas Kλeanthous - Diagram - Life Beyond Distributed Transactions: An Apostate’s Implementation - A Primer
Jimmy Bogard - Blog Post - Designing Data-Intensive Applications
Martin Kleppmann - Book - Effective Microservice Communication and Conversation Patterns
Jimmy Bogard - Talk - How Should Microservice’s Communicate?
Jeremy Miller - Blog Post - Consuming Microservices
Ian Cooper - Talk - Microservices and Rules Engines – a blast from the past
Udi Dahan - Talk - Event Driven Collaboration
Ian Cooper - Talk - Marrying RESTful HTTP with Asynchronous and Event-Driven Services
Kevin Sookocheff - Blog Post - Microservices Aren’t Magic: Handling Timeouts
Colin Jones - Blog Post
Event Driven Architecture
- Learn Advanced Distributed Systems Design
Udi Dahan - Course - Journey to Event Driven – Part 1: Why Event-First Programming Changes Everything
Neil Avery - Blog Post - Event Based Architecture: What do you mean by EVENT?
Derek Comartin - Blog Post - If (domain logic) then CQRS, or Saga?
Udi Dahan - Talk - Eventual Consistency for Mere Mortals
Ralf Westphal - Blog Post - Sync-async boundary
Tomek Masternak - Blog Post - Race Conditions Don’t Exist
Udi Dahan - Blog Post - Fallacies of distributed computing
Wikipedia - Blog Post - Death to the batch job
David Boike - Blog Post - Thinking in Events: From Databases to Distributed Collaboration Software (ACM DEBS 2021)
Martin Kleppmann - Talk - Queues are still queues
Jimmy Bogard - Blog Post - Conflict Resolution for Eventual Consistency
Martin Kleppmann - Blog Post - Keynote: Temporal Modelling
Mathias Verraes - Blog Post - How to tame event-driven microservices
Bernd Rücker - Talk - Opportunities and Pitfalls of Event-Driven Utopia
Bernd Rücker - Talk - Talk Session: Messages on the Outside, Messages on the Inside
Szymon Pobiega - Talk - Infrastructure soup
David Boike - Blog Post - Retries in distributed systems: good and bad parts
Shubheksha Jalan - Blog Post - Loosely coupled applications with MassTransit and RabbitMq -
Roland Guijt - Talk - The Many Meanings of Event-Driven Architecture
Martin Fowler - Talk - Your Coffee Shop Doesn’t Use Two-Phase Commit
Gregor Hohpe - Blog Post - Life Beyond Distributed Transactions
Pat Helland - Blog Post - Scaling Applications with Microservices and NServiceBus 6
Roland Guijt - Course - I caught an exception. Now what?
David Boike - Blog Post - Scaling Applications with Microservices, MassTransit, and RabbitMQ
Roland Guijt - Course - Verification of Event-Driven Systems
Blog Post
Exactly Once
- Exactly-once message delivery
Szymon Pobiega - Blog Post - The impossibility of exactly-once delivery
Savvas Kleanthous - Blog Post
Patterns
- Enterprise Integration Patterns
Gregor Hohpe - Book - DDD and Messaging Architectures
Mathias Verraes - Blog Post - Outbox, Inbox patterns and delivery guarantees explained
Oskar Dudycz - Blog Post - Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions 1st Edition
Gregor Hohpe - Book - Integration Patterns with NServiceBus
Jimmy Bogard - Talk - Competing Consumers Pattern for Scalability
Derek Comartin - Talk - A small decision tree: Orchestration vs Choreography
Savvas Kλeanthous - Diagram - Reactive Messaging Patterns with the Actor Model: Applications and Integration in Scala and Akka
Vaughn Vernon - Book
Messages
- Messaging Commands & Events Explained!
Derek Comartin - Talk - Thin vs Fat Integration Events
Derek Comartin - Blog Post - Putting your events on a diet
David Boike - Blog Post - Immutability in Message Types
Jimmy Bogard - Blog Post - Message Properties
Derek Comartin - Blog Post - Message Naming Guidelines
Derek Comartin - Blog Post - correlation id and causation id in evented systems
Robert Pankowecki - Blog Post - Handling Failures in Message Driven Architecture
Derek Comartin - Talk
Orchestration & Choreography
- Saga and Process Manager - distributed processes in practice
Oskar Dudycz - Blog Post - Refactoring Towards Resilience: Process Manager Solution
Jimmy Bogard - Blog Post - Distributed Sagas: A Protocol for Coordinating Microservices
Caitie McCaffrey - Talk - Choreography vs Orchestration in the land of serverless
Blog Post - Six Little Lines of Fail
Jimmy Bogard - Talk - Refactoring Towards Resilience: A Primer
Jimmy Bogard - Blog Post - Pattern: Saga
Chris Richardson - Blog Post - Event Store Conversations: Yves Lorphelin and Chris Condron talk about process managers
Chris Condron - Podcast
Decomposition
- First Law
Martin Fowler - Blog Post - Microservices and the First Law of Distributed Objects
Martin Fowler - Blog Post - Finding Service Boundaries with the Bounded Context Canvas
Nick Tune - Talk - Monolith -> Services: Theory & Practice
Kent Beck - Blog Post - The Entity Microservice Trap You May Be Doing It Wrong
Fred George - Talk - How to break a Monolith into Microservices
Zhamak Dehghani - Blog Post - Untangling Microservices, or Balancing Complexity in Distributed Systems
Vladik Khononov - Blog Post - Introducing Domain-Oriented Microservice Architecture
Adam Gluck - Blog Post - Finding your service boundaries - a practical guide
Adam Ralph - Talk - Context is King: Finding Service Boundaries
Derek Comartin - Blog Post - Splitting a Domain Across Multiple Bounded Contexts
Mathias Verraes - Blog Post - Designing Micro Services the Right Way
Max Rohde - Blog Post
Autonomous
- Talk Session: Strategic Autonomous Design: Patterns & Heuristics
Nick Tune - Talk
Capability Focused
- Capability Mapping
Ian Cooper - Talk - Getting (service) design right
Uwe Friedrichsen - Talk - From Capabilities to Services: Modelling for Business-IT Alignment
Trond Hjorteland - Talk
Teams
- STREAMS AS THE TEAM INTERFACE
Martin Kleppmann - Blog Post - Keynote: Socio-Technique and Structure
Michael Feathers - Blog Post - Independent Service Heuristics
Matthew Skelton - Blog Post - Forget monoliths vs. microservices. Cognitive load is what matters.
Matthew Skelton and Manuel Pais - Blog Post - The Structure and Process Fallacy
Nick Tune - Blog Post
Patterns and Techniques
- Strategic Microservice Patterns
Nick Tune - Talk - Monolith Decomposition Patterns
Sam Newman - Talk - Getting from Monolith to Microservices
Jimmy Bogard - Talk
Examples
- Finding Service Boundaries – illustrated in healthcare
Udi Dahan - Blog Post
Related Categories
Api Gateways
- API gateways and the dangers of creeping middleware scope
Blog Post - Layering domain and microservices using API Gateways
Blog Post - Using API Gateways and JWTs for Identity Management in Microservice Based APIs
Nick Lee Learn - Blog Post - API Gateway: the Microservices Superglue
Vincenzo Chianese - Blog Post - Microservices Authentication and Authorization Solutions
Mina Ayoub - Blog Post
Operations
- A Brief History of Scaling LinkedIn
Josh Clemm - Blog Post - Insecure Transit - Microservice Security
Sam Newman - Talk - Building End-to-End Diagnostics: OpenTelemetry Integration
Jimmy Bogard - Blog Post - Building End-to-End Diagnostics and Tracing: An Intro
Jimmy Bogard - Blog Post - An operations model for Microservices
Magnus Larsson - Blog Post - Debugging Microservices: How Google SREs Resolve Outages
Adam McKaig and Liz Fong-Jones - Talk
User Experience
Event Driven UIs
- 4 Ways to Handle Eventual Consistency on the UI
Daniel Whittaker - Blog Post - Event Driven UIs
Matt Barrett, Bhavesh Desai - Talk
UI Composition
- ViewModel Composition
Mauro Servienti - Blog Post - Compositional UIs - the Microservices Last Mile
Jimmy Bogard - Talk - Composite UIs for Microservices - A Primer
Jimmy Bogard - Blog Post - Compositional UIs With Hosted Views and Hypermedia
Nordic APIs - Talk - Turn on the motors
Mauro Servienti - Blog Post - The Quest for a better Search
Mauro Servienti - Blog Post - The Price of Freedom
Mauro Servienti - Blog Post - Querying data across microservices
John Freeman - Blog Post - Search Across Microservices
Blog Post - Pattern: Command Query Responsibility Segregation (CQRS)
Chris Richardson - Blog Post - Composite UIs for Microservices: Vertical Slice APIs
Jimmy Bogard - Blog Post
Micro Front Ends
- Micro-frontends resources
Luca Mezzalira - Blog Post - Micro Frontends Architecture
Rag Dhiman - Course - Micro Frontends - extending the microservice idea to frontend development
Web Site
Graphql
- GraphQL and ASP NET Core - .NET Oxford - November 2019
Pusher - Talk - Building GraphQL APIs with ASP.NET Core
Roland Guijt - Course - Our learnings from adopting GraphQL
Netflix Technology Blog - Blog Post - Our learnings from adopting GraphQL
Artem Shtatnov and Ravi Srinivas Ranganathan - Blog Post
Examples
- .NET Microservices Sample Reference Application
Source Code - A Design Analysis of Cloud-based Microservices Architecture at Netflix
Cao Duc Nguyen - Blog Post - gigya/microdot
Source Code
Actor Model
- Akka.NET Live Webinar: Akka.Cluster Simply Explained
Aaron Stannard - Talk - Akka.NET: The Future of Distributed Programming in .NET
Aaron Stannard - Talk
Lessons Learned & Other Commentary
- Design Microservice Architectures the Right Way
Michael Bryzek - Talk - Avoiding Microservice Megadisasters
Jimmy Bogard - Talk - YOW! Nights October 2015 - Microservices, SOA, DDD
Udi Dahan - Talk - 10 years of microservices at FINN.no - and we still haven’t slain that dragon!
Henning Spjelkavi - Talk - How we misunderstood microservices
Afonso Delgado - Blog Post - Own the future, NSB-style
Udi Dahan - Talk - Own the future
Udi Dahan - Talk - Avoiding Microservice Megadisasters
Jimmy Bogard - Talk - Disasters I’ve seen in a microservices world
João Alves - Blog Post - Hopelessness and Confidence in Distributed Systems Design
Camille Fournier - Talk - Microservices after Two Years
George Stocker - Blog Post - The microservices fallacy
Uwe Friedrichsen - Blog Post - One Team at Uber is Moving from Microservices to Macroservices
Todd Hoff - Blog Post - Evolutionary Architecture & Micro-Services
Rebecca Parsons - Talk - Goodbye Microservices: From 100s of problem children to 1 superstar
Blog Post - What has 4 years of AWS Microservices taught me? -
Abhaya Chauhan - Talk - From Winning the Microservice War to Keeping the Peace
Talk - Does My Bus Look Big in This?
Martin Fowler Jim Webber - Talk
Stream Processing
- Plumbing At Scale
Karan Kamath - Blog Post - The Data Dichotomy: Rethinking the Way We Treat Data and Services
Ben Stopford - Blog Post
An Alternative: The Modular Monolith
- Solution & Project Structure of a Loosely Coupled Monolith
Derek Comartin - Blog Post - Modular Monolith with DDD
Source Code - Loosely Coupled Monolith
Derek Comartin - Talk - The Majestic Monolith
DHH - Blog Post - Architecture patterns to support incremental change
Ben Morris - Blog Post - GOTO 2018 • Modular Monoliths •
Simon Brown - Blog Post - In Defence of the Monolith, Part 1
Dan Haywood - Blog Post