Finding harmony in Microservices: Choreography vs Orchestration

When designing complex systems, especially those involving microservices and distributed environments, you often get to the point where you have to design a way to get different services to collaborate, to work together to accomplish some kind of workflow. For example, let’s think about an order in an e-commerce system: we might have several services involved, such as warehouse, payment, shipping, just to name a few. Often these services are implemented in stand-alone microservices, which must somehow act together and synchronize in order to properly fulfill the order....

December 7, 2024 · 4 min · Alessio Debernardi Venon

Hexagonal (Ports and Adapters) Architecture

In the realm of software architecture, various design patterns and principles aim to enhance the flexibility, maintainability, and scalability of applications. One such pattern that has gained prominence is the Hexagonal Architecture, also known as Ports and Adapters. This architectural style, introduced by Alistair Cockburn in 2005, provides a clean separation between the core business logic of an application and its external dependencies, such as the user interface, database, and external systems....

November 12, 2023 · 7 min · Alessio Debernardi Venon