Skip to content

Sponsor: Do you build complex software systems? See how NServiceBus makes it easier to design, build, and manage software systems that use message queues to achieve loose coupling. Get started for free.

Learn more about Software Architecture & Design.
Join thousands of developers getting weekly updates to increase your understanding of software architecture and design concepts.


Follow @CodeOpinion

Domain Modeling Gone Wrong – Part 1

How do you model a complex domain? In domain-driven design, you might think about entities, value objects, and aggregates when domain modeling. But how are you defining those? I will go over what a common modeling approach is but is backward. Let me explain why. YouTube Check out my YouTube channel, where I post all kinds of content accompanying my posts, including this video showing everything in this post. Ugh, Aggregates, Entities, and Value Objects Typical advice is to figure out what your aggregates are. You define entities and value objects and then group them together to define aggregates. Aggregates are a… Read More »Domain Modeling Gone Wrong – Part 1

5 Tips for Building Resilient Architecture

How do you build resilient architecture and systems? I will give you five tips on things you can look at and implement to keep your systems functioning correctly and consistently. YouTube Check out my YouTube channel, where I post all kinds of content accompanying my posts, including this video showing everything in this post. Fallbacks You want to consider having a fallback for any external services you use. For example, this could be a payment gateway or something as simple as a URL shortener. Why? If you depend on these external services and they become unavailable, this can negatively affect the availability… Read More »5 Tips for Building Resilient Architecture

Path to Event-Driven Architecture. Start capturing INTENT!

CRUD (Create Read Update Delete) needs to burn in a tire fire. While it seems simple, it often leads to a spaghetti code mess of complexity in a large system. Start being explicit and capturing intent. Once you do this, the floodgates open possibilities for extending your system by following the path to event-driven architecture. YouTube Check out my YouTube channel, where I post all kinds of content accompanying my posts, including this video showing everything in this post. CRUD Create, Read, Update, Delete (CRUD) is pretty common. Generally, it’s just simple forms to add data to a database and provide a… Read More »Path to Event-Driven Architecture. Start capturing INTENT!