MajdiB

Writing

Notes on distributed systems, architecture, event-driven design and AI engineering.

Bounded Contexts Are Org Charts in Disguise

Bounded Contexts Are Org Charts in Disguise

DDD System Design Microservices

Conway's Law says systems mirror the communication structure of the organizations that build them. Domain-Driven Design says a bounded context should mirror the domain. Most of the time, the domain loses that argument.

6 min read

Domain Events vs Integration Events: The Line Your Team Keeps Crossing

Domain Events vs Integration Events: The Line Your Team Keeps Crossing

DDD EDA Microservices

Both are called 'events.' Both get published to a broker. That surface-level similarity is exactly why teams keep publishing one where they should be publishing the other, and why the mistake is so hard to notice until a schema change breaks three unrelated services.

6 min read

Event-Driven Architecture: The Future of Scalable Systems Explained

Event-Driven Architecture: The Future of Scalable Systems Explained

EDA Microservices Serverless Event Sourcing CQRS

If you’re diving into microservices or looking to scale your systems, you’ve probably heard of <b>Event-Driven Architecture (EDA)</b>. It’s a buzzword for a reason — EDA is a game changer when it comes to building responsive, scalable applications. But what exactly is it, and how does it stack up against more traditional approaches? Let’s break it down.

6 min read

Event Sourcing's Dirty Secret: Nobody Talks About the Replay Bill

Event Sourcing's Dirty Secret: Nobody Talks About the Replay Bill

Event Sourcing EDA System Design

Event sourcing conference talks sell you the audit trail and the time travel. They rarely mention what it costs to replay millions of events years later, or what happens the day you need to change what an old event means.

7 min read

GenAI Agents can be just Microservices with new set of features

GenAI Agents can be just Microservices with new set of features

GenAI LLM Patterns

GenAI agents are becoming increasingly popular, and many believe they should redefine software design to make them supporting agents. However, if we consider them as microservices, we can apply all the best practices and concepts we've learned. These agents can autonomously handle complex tasks, process unstructured data, and adapt their behavior over time. By integrating GenAI agents, organizations can enhance the flexibility, scalability, and intelligence of their systems, expanding the potential of what microservices can achieve.

6 min read

Rethinking Domain Driven Design: Focus on What Really Matters

Rethinking Domain Driven Design: Focus on What Really Matters

DDD System Design

If you’ve been exploring <b>Domain Driven Design</b> (DDD), you might have come across a lot of talk about <b>entities</b>, <b>value objects</b>, and <b>repositories</b>. These are the tactical patterns that often grab attention, but let’s take a step back and think about what really makes DDD valuable.

6 min read

The Outbox Pattern: How to Lie to Your Database and Still Sleep at Night

The Outbox Pattern: How to Lie to Your Database and Still Sleep at Night

EDA Microservices Patterns

The dual-write problem is the silent killer of event-driven systems: you save to your database, then publish an event, and one of those two things eventually fails without the other knowing. The Outbox Pattern fixes it by lying to your database on purpose, in a way that's actually safe.

7 min read

Understanding HTTP Streaming

Understanding HTTP Streaming

Tutorial EDA

HTTP Streaming is a powerful method for delivering real-time updates from server to client. By keeping the connection open, the server can send data as it becomes available. In this guide, we’ll explore how HTTP Streaming works, compare two different techniques (chunked transfer encoding and Server-Sent Events), and walk you through practical implementations of both.

6 min read

Webhooks vs WebSockets vs HTTP Streaming: Choosing the Right Event-Driven API

Webhooks vs WebSockets vs HTTP Streaming: Choosing the Right Event-Driven API

EDA Microservices Serverless Webhooks WebSockets HTTP Streaming

Picking the right event-driven API can make a huge difference in how well your app performs. Whether you're looking for real-time updates, efficient data delivery, or seamless communication, Webhooks, WebSockets, and HTTP Streaming each offer something unique. In this article, we’ll break down what makes each one tick and help you decide which is the perfect fit for your app’s needs. Let’s dive in!

6 min read

Why Your Retry Logic Needs a Circuit Breaker's Personality, Not Its Code

Why Your Retry Logic Needs a Circuit Breaker's Personality, Not Its Code

System Design Microservices Patterns

Most teams copy a circuit breaker library into their retry logic and call it resilience. The library isn't the point. The behavior it encodes — noticing you're hurting something and stopping — is the point, and you can get it wrong even with the right library installed.

6 min read

We use cookies on this site to enhance your user experience

By clicking the Accept button, you agree to us doing so. More info on our cookie policy