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

Intent

Send and notify state changes of your objects to other applications using an Event-driven Architecture.

Class diagram

Event Driven Architecture

Applicability

Use an Event-driven architecture when

  • you want to create a loosely coupled system
  • you want to build a more responsive system
  • you want a system that is easier to extend

iluwatarLess than 1 minuteArchitecturalReactive
Event Sourcing

Intent

Instead of storing just the current state of the data in a domain, use an append-only store to record the full series of actions taken on that data. The store acts as the system of record and can be used to materialize the domain objects. This can simplify tasks in complex domains, by avoiding the need to synchronize the data model and the business domain, while improving performance, scalability, and responsiveness. It can also provide consistency for transactional data, and maintain full audit trails and history that can enable compensating actions.


iluwatarLess than 1 minuteArchitecturalPerformanceCloud distributed
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
Metadata Mapping

Intent

Holds details of object-relational mapping in the metadata.

Explanation

Real world example

Hibernate ORM Tool uses Metadata Mapping Pattern to specify the mapping between classes and tables either using XML or annotations in code.


iluwatarAbout 2 minArchitecturalData access
Model-View-Controller

Intent

Separate the user interface into three interconnected components:
the model, the view and the controller. Let the model manage the data, the view
display the data and the controller mediate updating the data and redrawing the
display.

Explanation

Real-world example


iluwatarAbout 2 minArchitecturalDecoupling