1. Architecture Patternshistorical

    Monolithic, layered, event-driven, CQRS, microservice, and plug-in architecture patterns.

  2. Monolithic Architecturehistorical

    What monolithic architecture is and its advantages and disadvantages.

  3. Layered Architecturehistorical

    What layered architecture is and its evolution from one, two, and three tiers to DDD four-layer, hexagonal, and onion architectures.

  4. Read/Write Separation Architecturehistorical

    What read/write separation is, why it is needed, where it applies, how to design it at the service and storage layers, and the materialized-view pattern.

  5. Event-Driven Architecturehistorical

    What event-driven architecture is, why it is needed, its real-time trade-off, and publisher-subscriber and event-stream design patterns.

  6. Domain-Driven Designhistorical

    What DDD is: domains, ubiquitous language and bounded contexts, entities and value objects, aggregates, domain events, repositories and factories, and a DDD design process.

  7. Microserviceshistorical

    Historical notes on what microservice architecture is, its relationship with SOA, trade-offs, decomposition, project architecture, and the microservice technology stack.

  8. OpenID Connecthistorical

    Historical notes on what OpenID Connect is and how its flow differs from OAuth by adding OpenID identity information and an ID Token.

  9. JWThistorical

    Historical JWT notes covering what JWT is, why it is used, JWT versus sessions, token structure, and the basic request flow.

  10. OAuthhistorical

    Historical OAuth 2.0 notes covering why OAuth is needed, the authorization flow, grant modes, token refresh, and scopes.

  11. How to Design a Configuration Centerhistorical

    What a configuration center is, why it is needed, storage, client notification, service discovery, caching, canary release, and an example configuration-center database design.

  12. How to Design a Load-Balancing Componenthistorical

    What load balancing is, why it is needed, common algorithms, hardware/software/DNS choices, L2/L3/L7 approaches, and client-side versus server-side load balancing.

  13. How to Design a Service Registryhistorical

    What a service registry is, why it is needed, server-side and client-side design, service discovery and routing, registry components, and ZooKeeper versus Eureka.

  14. How to Design an API Gatewayhistorical

    What an API gateway is, why it is needed, request forwarding and filtering, I/O models, common gateway components, BFF, and gateway aggregation.

  15. How to Design a Monitoring Systemhistorical

    What monitoring is, why microservices need it, and the three parts: logs, metrics, and tracing.

  16. How to Design Distributed Tracinghistorical

    What tracing is, why it is needed, Span/Trace/Annotation data, sampling, collection approaches, storage, display, and common tracing components.

  17. How to Design a Fault-Tolerance Componenthistorical

    What fault tolerance is, service avalanche, and common techniques including timeouts, retries, rate limiting, circuit breaking, isolation, and degradation.

  18. How to Design Log Monitoringhistorical

    What log monitoring is, why it is needed, logging strategy, collection, aggregation, indexing and storage, analysis, and ELK.

  19. How to Design Metrics Monitoringhistorical

    What metrics monitoring is, why it is needed, what to monitor, how to collect and store metrics, alerting, and common metrics components.

  20. How to Design Authentication and Authorizationhistorical

    Authentication, authorization, and credentials; common techniques; and how authentication and authorization are integrated into a microservice architecture.

  21. Service Meshhistorical

    Historical notes on cloud native, cloud platforms, VPCs, and the evolution, purpose, and common implementations of Service Mesh.

  22. Pluggable Architecturehistorical

    Original VNote placeholder for pluggable architecture.

  23. How to Design a Container Scheduling Systemhistorical

    A short note on what container scheduling is, why it is needed, and Kubernetes as a scheduling component.

  24. How to Design a Pipeline Systemhistorical

    A short note on CI/CD pipelines, their purpose, design, and Jenkins.