Domain Driven Design · Software Architecture

Structure of software in a distributed architecture

…in the beginning I was interested in what is the structure of software. People in hardware have it all easier. When you build machines, you have obvious components connected by wires and this forces you to a kind of natural modularity. Each component does whatever its doing and provides a simple way interacting with the… Continue reading Structure of software in a distributed architecture

CQRS · Domain Driven Design

Asynchronous APIs and CloudEvents in messaging architectures

Table of contents Prologue Asynchronous Api CloudEvent Specification: a common format for messages Commands/Events and Horizontal scaling with Competing Consumers pattern Failure Tolerance CQRS and how to handle the reads synchronously Prologue In this article I will discuss an architectural approach I usually follow when I design Apis and distributed messaging architectures. The architecture is… Continue reading Asynchronous APIs and CloudEvents in messaging architectures

CQRS · Domain Driven Design · Event Sourcing · Software Architecture

Distributed Architecture: 3 Steps

Here is my view implementing business requirements with DDD, Event Sourcing and CQRS. Ingestion Processing CQRS and Data Distribution Applying the same 3 steps for each new requirements let improves time after time the mechanics of each small bubble while it is living in the aquarium of an Event Driven ecosystem along with bigger legacy… Continue reading Distributed Architecture: 3 Steps

CQRS · Domain Driven Design · Software Architecture

Distributed Architecture 03: CQRS and Data Distribution

In our journey we started with a business requirement, we model the requirement with commands, events, we ingest input data, we process the data, we implemented processing components using Event Sourcing pattern and we stored our Domain Events in small streams. All this represent the way to define and feed our write model. The benefit… Continue reading Distributed Architecture 03: CQRS and Data Distribution

Domain Driven Design · Event Sourcing · Software Architecture

Distributed Architecture 02: The Processing

In the ingestion phase data went through the front door to enter our domain. In the domain area we want to process the data in case they mean something for our components, ignore them if not relevant or raise exception if the data are relevant but something is not right. In the previous phase, the… Continue reading Distributed Architecture 02: The Processing

Domain Driven Design · Event Sourcing · Software Architecture

Distributed Architecture 01: The Ingestion

neurons are cells that are specialised to pass signals to individual target cells, and synapses are the means by which they do so Introduction Clients need results… synchronously Scale the ingestion channel Using Single or Multiple Input Streams Discover unstructured data Introduction A Distributed Software Architecture is formed by several parts that communicate with each… Continue reading Distributed Architecture 01: The Ingestion