Skip to main content
Aggregator Microservices

Intent

Streamline client's interactions with system's microservices by providing a single aggregation point that consolidates data and responses from multiple services. This simplifies the client's communication with the system, improving efficiency and reducing complexity.

Explanation


iluwatarAbout 2 minArchitecturalAPI designCloud distributedDecouplingMicroservices
API Gateway

Intent

The API Gateway design pattern aims to provide a unified interface to a set of microservices. It acts as a single entry point for clients, routing requests to the appropriate microservices and aggregating results, thereby simplifying the client-side code.

Also known as


iluwatarAbout 3 minArchitecturalAPI designCloud distributedDecouplingMicroservices
CQRS

Intent

Command Query Responsibility Segregation (CQRS) aims to segregate the operations that modify the state of an application (commands) from the operations that read the state (queries). This separation allows for more flexible and optimized designs, especially in complex systems.


iluwatarAbout 2 minArchitecturalEvent-drivenPerformanceScalability
Event-Driven Architecture

Also known as

  • Event-Driven System
  • Event-Based Architecture

Intent

Event-Driven Architecture (EDA) is designed to orchestrate behavior around the production, detection, consumption of, and reaction to events. This architecture enables highly decoupled, scalable, and dynamic interconnections between event producers and consumers.


iluwatarAbout 3 minArchitecturalAsynchronousDecouplingEnterprise patternsEvent-drivenMessagingPublish/subscribeReactiveScalability
Event Sourcing

Also known as

  • Event Logging
  • Event Streaming

Intent

Event Sourcing is a design pattern that advocates for the storage of state changes as a sequence of events. Instead of updating a record in a database, all changes are stored as individual events which, when replayed, can recreate the state of an application at any point in time.


iluwatarAbout 3 minArchitecturalDecouplingEvent-drivenFault toleranceMessagingPersistenceScalabilityTransactions
Flux

Intent

The Flux design pattern is intended to manage the flow of data in applications, particularly client-side web applications, by enforcing a unidirectional data flow. It aims to simplify the management of complex data interactions and promote a more predictable state behavior across components.


iluwatarAbout 3 minArchitecturalClient-serverDecouplingEvent-drivenPublish/subscribeReactive
Front Controller

Also known as

  • Centralized Request Handling

Intent

The Front Controller design pattern aims to provide a centralized entry point for handling all incoming web requests, ensuring that request handling is managed consistently and efficiently across an application.


iluwatarAbout 2 minArchitecturalArchitectureDecouplingEnterprise patternsLayered architectureWeb development
Hexagonal Architecture

Also known as

  • Ports and Adapters
  • Clean Architecture
  • Onion Architecture

Intent

Allow an application to equally be driven by users, programs, automated test or batch scripts, and to be developed and tested in isolation from its eventual run-time devices and databases.


iluwatarLess than 1 minuteArchitecturalDecoupling
Layers

Intent

Layers is an architectural pattern where software responsibilities are divided among the different
layers of the application.

Explanation

Real world example

Consider a website displaying decorated cakes for weddings and such. Instead of the web page
directly reaching into the database, it relies on a service to deliver this information. The
service then queries the data layer to assimilate the needed information.
In plain words


iluwatarAbout 1 minArchitecturalDecoupling
Log aggregation

Intent

Centralize, streamline, and optimize the process of log management so that insights can be quickly
derived, problems can be swiftly identified and resolved, and the system's overall health can be
monitored efficiently.

Explanation

Real-world example

AWS CloudWatch aggregates logs from various AWS services for monitoring and alerting.


iluwatarAbout 1 minArchitecturalMicroservicesExtensibility