Skip to content

Sponsor: Using RabbitMQ or Azure Service Bus in your .NET systems? Well, you could just use their SDKs and roll your own serialization, routing, outbox, retries, and telemetry. I mean, seriously, how hard could it be?

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

Derek Comartin

10 Years of Software Architecture: Best And Worst Decisions

For the last 10 years, I’ve been developing a single product, greenfield, designing the architecture from scratch, and evolving it over time. Over this decade-long journey, I’ve made some architectural decisions I’m proud of—and some I definitely regret. Today, I want to share those experiences with you, diving deep into the good and bad decisions I made, and what I learned along the way. One theme that runs throughout my experience is the importance of isolation. How you isolate parts of your system, define boundaries, and manage dependencies can make or break your ability to evolve your architecture over time.… Read More »10 Years of Software Architecture: Best And Worst Decisions

CRUD APIs are Poor Design

I’m convinced that CRUD APIs and CRUD-driven systems—meaning systems built around Create, Read, Update, and Delete operations—are, in the long run, the hardest to change and evolve. This might sound unintuitive at first, especially since many of us have read blog posts, watched videos, or taken courses on building HTTP APIs under the guise of REST. But often, what we’re really doing is just CRUD-driven development over a database record using HTTP methods and JSON. YouTube Check out my YouTube channel, where I post all kinds of content accompanying my posts, including this video showing everything in this post. Beyond CRUD Ultimately,… Read More »CRUD APIs are Poor Design

DTOs & Mapping : The Good, The Bad, And The Excessive

Something that’s often overused, misunderstood, or just incorrectly applied in software development: Data Transfer Objects (DTOs). DTOs are a common pattern, but like many things in software, they tend to get used in places where they don’t actually solve the problem at hand. So, what are DTOs really for? When should you use them? And when are they just extra work with no real benefit? Let’s dig in. YouTube Check out my YouTube channel, where I post all kinds of content accompanying my posts, including this video showing everything in this post. What Are Data Transfer Objects (DTOs)? First, let’s start with… Read More »DTOs & Mapping : The Good, The Bad, And The Excessive