CQRS · Event Sourcing · Generative AI · Software Architecture

Use Generative AI with Commands and Events

this article is currently a work in progress. In this post I’m going to discuss the use of Artificial Intelligence (AI) combined with messaging patterns like Event Sourcing and CQRS. AI components can play different roles in different scenarios like pattern recognition, business insights, future predictions and more. Currently I’m more interested in building an… Continue reading Use Generative AI with Commands and Events

Software Architecture

Horrible Architectures: 3 layers camouflage

Once upon a time I was use to listen a business requirement and automatically visualize its relational schema mapping nouns to entities/tables. I was proud of myself quickly defining a model with little logic, a service layer, business logic, an ORM library to manage et voila… something working showing it to the business stakeholders. Let… Continue reading Horrible Architectures: 3 layers camouflage

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

Event Sourcing · Software Architecture

Kafka vs Event Store on scaling processing in a messaging architecture

This post is a condensed excerpt that I use for a tech talk about scaling distributed systems. Kafka is a message broker and Event Store is a database for stream of events. The roles of these tools has been extended and not always with good results. One can be a good simple ingestion tool while… Continue reading Kafka vs Event Store on scaling processing in a messaging architecture

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