The Pragmatic Programmer

Appian, Pega, Java, DevSecOps, Quality Engineering

Microservices design pattern

  1. Service Discovery: Service Discovery is the process of automatically detecting the location and availability of services in a network. It allows services to locate each other and communicate without requiring prior knowledge of each other’s network addresses or configurations.
  2. Circuit Breaker: Circuit Breaker is a design pattern used in software development to prevent cascading failures in distributed systems. It acts as a safety valve that monitors the health of a service and, if it detects a failure or error, it opens the circuit and prevents further requests from being sent until the service is healthy again.
  3. SAGA: SAGA (short for “Saga Pattern”) is a design pattern used in distributed systems to manage long-running transactions that involve multiple services. It breaks down a complex transaction into a series of smaller, atomic transactions, each of which can be individually compensated or rolled back if an error occurs.
  4. CQRS: CQRS (short for “Command Query Responsibility Segregation”) is a design pattern used to separate the read and write responsibilities of a system. It involves creating separate models for reading and writing data, which can improve performance and scalability by allowing each model to be optimized for its specific use case.
  5. Event Sourcing: Event Sourcing is a design pattern used to capture all changes to an application’s state as a series of immutable events. Instead of storing only the current state of an application, it stores the entire history of changes that led up to the current state. This allows for easy auditing and replaying of events, and can make it easier to handle concurrency and conflicts.