Some links that might be useful as we move forward into a microservicesworld:
- Microservices Resource Guide - from Martin Fowler
- Microservice Architecture - Big collection of patterns and sample code, from the author of Microservice Patterns (see the Books section below)
Articles & Blog Posts
- Notes on Distributed Systems for Young Bloods
- Christian Posta - Architect at Red Hat who writes quite a bit about microservice issues
- Zipkin - Distributed tracing system
- Microservices are hard — an invaluable guide to microservices.
- Interview with Scott Bellware (Eventide co-creator) about micro-services in Ruby, event sourcing, autonomous services, SOA, dumb pipes, EventStore and mis-representation of terms in IT
- The Death of Microservice Madness in 2018 - This one has guidelines for deciding whether you're ready for microservices
- Microservice Madness - Quick (and shallow) look at some microservice problems
- Containers Will Not Fix Your Broken Culture (and Other Hard Truths)
- Microservices in Adopt? - Perspective from ThoughtWorks about what it takes to succeed with microservices
- Microservices in a Post-Kubernetes Era
- Micro-Services, and Co-ordination
- Why should you use microservices and containers? - Pros and cons according to IBM
- On Infrastructure at Scale: A Cascading Failure of Distributed Systems - A cautionary tale with some general advice
- The Cost of Bad Software Architecture
- Microservices After Two Years
- Services are not a Silver Bullet
- Monolith vs. Microservices
- Microservices, Containers and Kubernetes in 10 minutes
- Microservices Done Right, Part 2: More Antipatterns to Avoid
- Microservices Done Right, Part 3: Quantifying the Benefits of Microservices
- The Fargate Illusion
- 9 tips for moving code to microservices - Big project advice from HPE.
- Container Misconceptions - Some common ones
- Why Microservices Should Scare You More
- Forget monoliths vs. microservices. Cognitive load is what matters.
- Guiding Principles for Developer Tools - When you're big enough to be building internal services for other groups of developers.
- Are you sure you’re using microservices? - Some warning signs that you may be building a distributed mess instead of microservices.
- So you want to learn Microservices? - Another big collection of links.
- What are the essential skills for Microservices developers? - Tech and soft skills
Keeping a Monolith
- Goodbye Microservices: From 100s of problem children to 1 superstar - Segment backed away from microservices.
- To Microservice or Monolith, that is the question... - "unless you have development resources spilling over the gunnels, stick with a monolith."
- Well Architected Monoliths are OK
- Microservices Are Something You Grow Into, Not Begin With
- The Neomonolith - Building a monolith with the intent of making it microservices later
- Scaling the Monolith - Maybe we don't need microservices after all.
- Deconstructing the Monolith: Designing Software that Maximizes Developer Productivity - Shopify uses the "modular monolith" pattern
- MicroServices - Check Size Before Ordering
- Give Me Back My Monolith
- Istio as an Example of When Not to Do Microservices
- Monoliths are the future
- The dark side of microservices
- To Microservices and Back Again - Why Segment Went Back to a Monolith
Decomposing into Microservices
- Break that big ball of mud!
- The great microservices migration - Slide deck based on Uber's experience
- Should that be a Microservice? Keep These Six Factors in Mind - Some guidance from Pivotal
- How do you cut a monolith in half?
- Do you have too many microservices? - Five Design Attributes that can Help - Another look at how to split up a monolith
- You’re Not Actually Building Microservices - Thoughts on avoiding the distributed monolith problem
- Strategies for Decomposing a System into Microservices - Some heuristics for finding the boundaries
- The misguiding mindset that you are using and how it is hindering your microservices architecture
- Monoliths to Microservices - A cartoon view from Pivotal
- Is a Shared Database in Microservices Actually an Anti-pattern?
- YAMVM — Yet Another Monolith vs. Microservices
- Mono’s Journey from monolith to microservices
- 3 Strategies for implementing a microservices architecture
- Using Microservices to Solve Slow Build Times - A strategy for getting started.
- Faster, cheaper, and better: A story of breaking a monolith - A detailed case study
- Microservice Architecture at Medium
- How to sleep at night having a cloud service: common Architecture Do's
- Should this be a microservice?
- Data-Oriented Architecture - "In data-oriented architecture, a monolithic data store is the sole source of state in the system, which is being acted on by loosely-coupled, stateless microservices."
- Untangling Microservices, or Balancing Complexity in Distributed Systems - Avoiding the distributed big ball of mud
- Building Domain Driven Microservices
- Under Deconstruction: The State of Shopify’s Monolith
- A Practical Introduction To Container Terminology - From Red Hat
- Container technologies at Coinbase - "Why Kubernetes is not part of our stack"
- Eventide - A full framework for event-sourced autonomous services in Ruby
- Rails Event Store - "The open-source implementation of an Event Store for Ruby and Rails"
- Announcing Distributed Application Runtime (Dapr), an open source project to make it easier for every developer to build microservice applications - Framework from Microsoft
- Go Micro - "Go Micro is a framework for microservice development." Written in Go, of course.
- Golang, Gin & MongoDB – Building microservices easily
- Event Sourcing Made Simple
- What They Don't Tell You About Event Sourcing
- An In-depth Look at Event Sourcing with CQRS - 461-slide presentation
- Datomic: Event Sourcing without the hassle
- Don't Let the Internet Dupe You, Event Sourcing is Hard
- CQRS and Event Sourcing Intro For Developers
- Mistakes we made adopting event sourcing (and how we recovered)
- 1 Year of Event Sourcing and CQRS
- Event Sourcing - Good overview
APIs & Gateways
- Design Patterns in API Gateways and Microservices - With a list of cross-cutting concerns
- Rate Limiting for API gateways
- Gubernator: Cloud-native distributed rate limiting for microservices - An open-source tool from Mailgun.
- API Gateways are going through an identity crisis
- Microservice API Patterns
- Everything You Need To Know About API Rate Limiting
- Architecting multiple microservices behind a single domain with Amazon API Gateway
- ExcessFlow - "ExcessFlow is a high precision Redis based rate limiter; it means that even with hundreds and even thousands requests coming in all at once it will not allow an occasional request slip over limit (causing potential race conditions or unwanted extra invocations of your code)."
- How to communicate your Microservices? - Choices for external APIs.
- Microservices Messaging: Why REST Isn’t Always the Best Choice
- Messages on Rails Part 1 - Introduction to Kafka and RabbitMQ
- Messages on Rails Part 2: Kafka
- Messages on Rails Part 3: RabbitMQ
- 7 Commandments for Event-Driven Architecture
- Why We’re Switching to gRPC
- Simple Two-way Messaging using the Amazon SQS Temporary Queue Client
- Introduction to Event-driven Architectures With RabbitMQ
- Announcing Message DB: Event Store and Message Store for PostgreSQL
- We built network isolation for 1,500 services to make Monzo more secure - A tale of rearchitecting towards a zero-trust network.
- Design Secure & Scalable VPC for Micro-service Architecture
- How did we get to service meshes?
- Envoy Proxy at Reddit
- Comparing Kubernetes Service Mesh Tools
- Containers, microservices, and service meshes: Comparisons & lessons extracted from a real-world project.
- Announcing Maesh, a Lightweight and Simpler Service Mesh Made by the Traefik Team
- The Service Mesh: What Every Software Engineer Needs to Know about the World's Most Over-Hyped Technology - From one of the original Linkerd developers.
- Learn Istio! - Collection of links
- Future-Proofing Backend Services with GraphQL, PostgreSQL and Docker (Part 1)
- Every service is an island - Design pattern to help prevent cascading failures
- Embracing context propagation
- The Circuit Breaker Pattern
- The architecture of declarative configuration management
- Application integration patterns for microservices: Fan-out strategies - AWS-specific architectural advice
- Distributed transactions are Not Micro-services
- Deleting data distributed throughout your microservices architecture
- Introducing Domain-Oriented Microservice Architecture
- Testing Microservices, the sane way - One of the best online articles I've ever read
- Testing of Microservices - Spotify engineers argue for testing edge behavior in isolation
- Integrated Tests Are A Scam - Don't write tests that pass or fail depending on spinning up other services
- Five microservice testing strategies for startups
- The Cloud Native QA
- Break functional and orchestration responsibilities for better testability
- Tinkertoys, Microservices, and Feature Management: How to build for the future - Slides from @wiredferret
- micro-jaymock - "Tiny API mocking microservice for generating fake JSON data."
- Microservices and Availability
- Reasons to Scale Horizontally
- The Patterns of Scalable, Reliable, and Performant Large-Scale Systems
- Securing Microservices (Part I)
- JWT: "JWT.IO allows you to decode, verify and generate JWT."
- Learn how to use JSON Web Tokens (JWT) for Authentication
- Micro-services Architecture with Oauth2 and JWT – Part 1 – Overview
- Why JWTs Suck as Session Tokens
- API Security Checklist: "Checklist of the most important security countermeasures when designing, testing, and releasing your API."
- How to think about Zero Trust architectures on AWS
- JWT is Awesome: Here's Why
- loginsrv - "loginsrv is a standalone minimalistic login server providing a JWT login for multiple login backends."
- A production-grade CI/CD Pipeline for Serverless Applications - Specifically using GitLab and AWS Lambda
- How to Design Services for Continuous Deployment: 3 Best Practices
- In the Loop: How a Release Team Centralizes and Aligns Processes
- Docker Deployments using Terraform
- Continuous Delivery Sounds Great, but Will It Work Here?
- Measuring and Improving your CI/CD Pipelines
- Canary analysis: Lessons learned and best practices from Google and Waze
- Maybe You Don't Need Kubernetes - Using Nomad for orchestration.
- Micro Frontends
- Front-end Microservices at HelloFresh
- Front-End Micro Services - Zalando's approach to composing HTML fragments while maintaining consistency
- Micro Frontends
- Microfronts - "Polyglot Front-End Solution for running multiple frameworks as one"
- Micro Frontends Architecture
- Microfrontends For The Win!
- Micro Frontends Benefits
- Micro frontends with Stacker
- Skipper - Router & reverse proxy for microservice composition
- Mockoon - "Mockoon is a free and open source local server/API mocking tool built with Electron"
- Migrating to Microservices Databases - patterns for zero-downtime database schema changes, back & forward compatibility, how to split the database
- SLO BURN - A Google SRE discusses SLOs and error budgets and monitoring and related topics.
- The Tao of Microservices - Excellent.
- Migrating to Microservice Databases: From Relational Monolith to Distributed Data - Free, requires registration with Red Hat Developer Program. Good discussions of zero-downtime migration patterns and ways to integrate data across multiple services. Strongly recommends one database per microservice.
- Microservices for Startups - Free, requires email registration with ButterCMS to get chapters emailed to your inbox. Or you can wait for them to show up on the web page; first two chapters are available as of January 8.
- Microservices Antipatterns and Pitfalls - Free, requires email registration with O'Reilly to download
- Microservice Patterns - Currently in the Manning Early Access Program, free download for chapter 1
- Building Microservices: Designing Fine-Grained Systems
- Production-Ready Microservices
- Designing Distributed Systems - O'Reilly ebook, free copy from Microsoft with email registration
- Practical Microservices: Build Event-Driven Architectures with Event Sourcing and CQRS
- An introduction to distributed systems - Course notes from a class that covers a lot of ground
- Microservices - Three-minute video sketch from KRAZAM.