JSON

Distributed System Architectures - JSON

Distributed system architectures are architectural patterns for designing and building systems where multiple independent computers or services work together. Various patterns exist, including microservices, event-driven architecture, and service-oriented architecture (SOA), each with different characteristics and applicable scenarios. These architectures are widely used to achieve scalability, fault tolerance, and flexibility.

distributed systems microservices event-driven SOA system design architecture patterns
[
  {
    "code": "01",
    "slug": "microservices-architecture",
    "name": "Microservices Architecture",
    "description": "An architecture that builds applications as a collection of small, independent services.",
    "category": "Service Decomposition Pattern"
  },
  {
    "code": "02",
    "slug": "event-driven-architecture",
    "name": "Event-Driven Architecture",
    "description": "An architecture that designs systems around the production, detection, consumption, and reaction to events.",
    "category": "Communication Pattern"
  },
  {
    "code": "03",
    "slug": "service-oriented-architecture",
    "name": "Service-Oriented Architecture",
    "description": "An architecture that builds applications as a collection of loosely coupled, reusable services.",
    "category": "Enterprise Pattern"
  },
  {
    "code": "04",
    "slug": "api-gateway-pattern",
    "name": "API Gateway Pattern",
    "description": "A pattern that provides a single entry point between clients and backend services.",
    "category": "Communication Pattern"
  },
  {
    "code": "05",
    "slug": "cqrs-pattern",
    "name": "CQRS Pattern",
    "description": "A pattern that separates read operations from write operations into different models.",
    "category": "Data Pattern"
  },
  {
    "code": "06",
    "slug": "saga-pattern",
    "name": "Saga Pattern",
    "description": "A pattern that manages distributed transactions by breaking them into multiple local transactions.",
    "category": "Transaction Pattern"
  },
  {
    "code": "07",
    "slug": "outbox-pattern",
    "name": "Outbox Pattern",
    "description": "A pattern that guarantees consistency between database transactions and event publishing.",
    "category": "Data Pattern"
  },
  {
    "code": "08",
    "slug": "sidecar-pattern",
    "name": "Sidecar Pattern",
    "description": "A pattern that deploys a helper component alongside the main application.",
    "category": "Deployment Pattern"
  },
  {
    "code": "09",
    "slug": "strangler-fig-pattern",
    "name": "Strangler Fig Pattern",
    "description": "A migration pattern for gradually replacing legacy systems with new systems.",
    "category": "Migration Pattern"
  },
  {
    "code": "10",
    "slug": "circuit-breaker-pattern",
    "name": "Circuit Breaker Pattern",
    "description": "A pattern that performs failure detection and automatic recovery to prevent cascading failures.",
    "category": "Fault Tolerance Pattern"
  },
  {
    "code": "11",
    "slug": "sharding-pattern",
    "name": "Sharding Pattern",
    "description": "A pattern that distributes data horizontally across multiple databases.",
    "category": "Data Pattern"
  },
  {
    "code": "12",
    "slug": "event-sourcing-pattern",
    "name": "Event Sourcing Pattern",
    "description": "A pattern that stores application state as a sequence of events.",
    "category": "Data Pattern"
  }
]