Avatar

Connell

Software Engineer

BlogTalksExplainersProjects
#agile#analytics#aop#architecture#bounded-contexts#chess#ci-cd#conways-law#cqrs#ddd#decorator#dotnet#events#firestorm#javascript#jekyll#logging#meetings#microservices#midi#music#platform#refactoring#rest-api#speaking#sre#teams#this#typescript

Software architecture is often just about drawing boxes and arrows. It's about designing fundamental structures and systems and how they relate to each other.

Migrating from a Monolith to a New Service

29th January 2025 NDC London #architecture#microservices#agile

This is a story about how our team at Stack Overflow split out a small feature from a monolithic application into its own microservice. We moved the data to a new database, rebuilt the UI as a microfrontend using a new framework, and managed to deploy it without any downtime.

Read More

Boundaries & Encapsulation

15th December 2024 #architecture

Different boundaries in a software system come with different trade-offs to consider. Let's zoom out from functions to distributed systems and look at what encapsulation means at each level.

Watch Online

Commands vs Events

20th February 2024 #architecture#events#cqrs

Communication over a message bus is often done with Commands and Events. But, what's the difference between them? Aren't they both just messages?

Watch Online

Transactional Outbox Pattern

23rd January 2024 #architecture#events

The Transactional Outbox Pattern ensures a message is always published to a message broker when making changes to a database, even if the message broker fails initially. This is essential for event-driven architecture to ensure consistency when other services are rebuilding state from your events.

Watch Online

Conway's Law

15th November 2023 #architecture#teams

The communication structures in your organisation influence your software architecture. We explore some examples of this and explain how it relates to Domain-Driven Design (DDD) and Microservices.

Watch Online

Good Boundaries: Bounded Contexts and Conway's Law

7th October 2023 DDD East Midlands Conference #architecture#ddd#bounded-contexts#conways-law

Deciding which things belong in which part of your system can make or break your architecture. To avoid creating a big ball of mud, we separate concerns and keep things organised. This talk takes us through different kinds of boundaries: What makes a good function? What makes a good class? A good service? We’ll discuss slicing vertically, building separate packages, and the trade-offs of splitting into many git repositories.

Read More

Event Sourcing

10th July 2023 #architecture#events

We explain the pros and cons of Event Sourcing compared to traditionally updating the current state in a database. We cover trade-offs with Eventual Consistency, problems with concurrency, and options to solve those with optimistic concurrency techniques.

Watch Online

Microservices vs Monolithic Architecture

27th April 2023 #architecture#microservices

Microservices, a Modular Monolith, or a Big Ball of Mud. This video explains the pros and cons of choosing a distributed system over one big monolith (whether that's a nicely structured Modular Monolith, or just a jumble of spaghetti code).

Watch Online

DDD Bounded Contexts & Subdomains

28th March 2023 #architecture#ddd

Bounded Contexts, subdomains and strategic design from Domain-Driven Design explained.

Watch Online

DDD Building Blocks

1st March 2023 #architecture#ddd

Explaining Aggregate Roots, Domain Events, Entities, Value Objects and Repositories - the building blocks in Domain-Driven Design.

Watch Online

CQS and CQRS

31st January 2023 #architecture#cqrs

Command-Query Separation and Command-Query Responsibility Segregation. Two design principles explained.

Watch Online

Hexagonal, Onion & Clean Architecture

3rd May 2022 #architecture

You're probably familiar with the N-tier architecture. This video explains the Hexagonal, Onion and Clean architectures, and how they relate to each other.

Watch Online

Visualising Software in Shapes

18th January 2022 #architecture

When I think of a software system, I see shapes and lines connecting groups of smaller shapes and smaller lines. Like a galaxy of solar systems with planets of continents, each with roads connecting cities with villages and hamlets. It's a structure that fits related concepts together and hides away complexity at different scales.

Read More

Software is about Drawing Boxes

7th November 2021 #architecture

That's what it all comes down to. Not to diminish anyone's long, hardworking career, but every design decision we make ultimately boils down to where we want to define a certain boundary. What concepts should we couple together? Which layers "know of" which? It's all a structure of how thoughts and ideas fit together.

Read More

Domain-Driven Boundaries

22nd October 2021 #ddd#architecture

At its core, Domain-Driven Design is about building shared models as a collaboration between domain experts and technical experts. When engineers speak the same language as the rest of the business, we can build an architecture that aligns with how the business works.

Read More

Onion Architecture with DDD and CQRS

11th October 2021 #architecture#ddd#cqrs

A lot of software engineering is about drawing boxes. That is, deciding how to break down the code we write. We don't just write everything in the Main method. We set boundaries, create abstractions, and divide things into single responsibilities.

Read More

Onion Architecture with DDD and CQRS

2nd October 2021 DDD East Midlands Conference #architecture#ddd#cqrs

Explaining how I reason about the building blocks of Onion Architecture, Domain-Driven Design and Command Query Responsibility Segregation in an event-driven microservices architecture. How it all fits together in my head, the concepts they share, and the mistakes I've made along the way.

Watch Online
© Connell Sharp 2024. Hosted by GitHub.