Topic
Architecture
Practical articles about Architecture.
Articles

My Architecture Drivers
2024-08-31 · 5 minI don’t feel like an authority or an expert. I prefer to think about myself as a practitioner. Our industry is filled with self-proclaimed experts; we need more doers…
Not all issues are complex, some are complicated. Here's how to deal with them
2024-01-05 · 15 minCynefin’s framework states that we have four types of decision-making contexts (or domains): clear, complicated, complex, and chaotic. They also add confusion to the mix…
What Dune can tell us about setting our goals
2023-12-30 · 3 minDune series has a lot of great thoughts. They’re more than just sci-fi books. Let me share one with you: Moneo: For what do you hunger, Lord? Leto: For a humankind which…
How to deal with privacy and GDPR in Event-Driven systems
2023-11-26 · 20 minThe law to be forgotten and immutable data sounds like fire and water. How to remove data if you’re building an event-driven system based on append-only, immutable log…
GDPR for busy developers
2023-11-10 · 13 minThis year, we had the fifth anniversary of the Developers’ Doomsday. In 2018, on the 25th of May, the European General Data Protection Regulation was made applicable. And…
In the defence of Object-Relational Mappers
2023-10-22 · 5 minI’m happy I didn’t have to use Object-Relational Mapping tools in the last few years. They’re solutions to some set of problems, but those are the problems I try to avoid…
Internal and external events, or how to design event-driven API
2023-10-15 · 10 minOne of the things that we’re learning too late in the Event-Driven approach is that we should have been splitting events into internal and external. While starting our…
How to design software architecture pragmatically
2023-10-06 · 9 minI’ve run numerous workshops in recent years. It’s intriguing to see different ways people solve the same problem. Some start from general vision and go into details, some…
Is the Strategy Pattern an ultimate solution for low coupling?
2023-10-01 · 14 minHaving a single source of truth and data point is a sweet spot for running business logic. We check the data from one place and update it. Easy peasy. The challenge is…
How to scale out Marten
2023-07-30 · 15 minIf you are already a reader of this blog, you probably know already that I’m not so fond of the Will it scale? question. I believe that, too often, it’s just a vague…
Vertical Slices in practice
2023-07-09 · 15 minI’m a preacher for the CQRS, Vertical Slices, and Feature Folders. I won’t hide that, and I won’t even try. I believe that structuring code based on the business feature…
Follow the money to get a better design
2023-07-02 · 3 minI noticed that we, developers, struggle to follow the money. And that’s impacting our design in the wrong way. Of course, we’re pretty good at getting high salaries, but…
Removability over Maintainability
2023-06-23 · 7 minA diverse system with multiple pathways and redundancies is more stable and less vulnerable to external shock than a uniform system with little diversity. A single line…
Don't let Event-Driven Architecture buzzwords fool you
2023-02-26 · 6 minI see a lot of new terms like Command-Event, Event-Based Compute, etc., presented around Event-Driven Architecture. Let me clear that up because there are no such things…
Testing asynchronous processes with a little help from .NET Channels
2022-12-04 · 4 minLet’s say that you have an event-driven application. It has an event bus that listens for events from asynchronous processes (e.g. Kafka consumer or outbox pattern). Once…
How to get all messages through Postgres logical replication
2022-11-20 · 7 minIn an earlier article, I described Push-based Outbox Pattern with Postgres Logical Replication. The idea is to store the outgoing message (e.g. event) in the same…
How events can help in making the state-based approach efficient
2022-11-13 · 8 minIn my last few articles, I showed the power of functional composition. That’s a foundation for effective modelling of your business logic. It allows for having more…
Writing and testing business logic in F#
2022-10-23 · 11 minMy road to functional programming was pretty long. I started with structural programming in C++ and then rebranded into an Object-Oriented approach with Java and C#. At…
Push-based Outbox Pattern with Postgres Logical Replication
2022-10-13 · 11 minThere are only a few patterns that I’m comfortable saying: “You should use it always if you want to build mature system”. One of them is the Outbox Pattern. Why? Because…
What do the British writer and his fence have to do with Software Architecture?
2022-08-17 · 6 minGilbert Keith Chesterton was a British writer from the turn of the 19th and 20th centuries. As for his times, we would call him an influencer or a maven. He had a lot of…
Why are we afraid of our decisions?
2022-08-10 · 6 minI don’t know if it will work well in production! Will it scale? What if we get too many users during Black Friday? Do you know those questions? I asked them myself; what…
Immutable Value Objects are simpler and more useful than you think!
2022-02-16 · 4 minI love proper typing. But what does that even mean? I could say that this is a types’ structure defined in a self-explanatory way. But that’d be clichéd, wouldn’t it…
How to quickly scale a legacy monolith?
2022-02-09 · 4 minWorking with a legacy monolith is not easy. For years we learned how to tame that beast gently. We nurtured it and tried not to break it. We even may enjoy that carefully…
How to slice the codebase effectively?
2021-09-08 · 6 minThe structure of projects is as sensitive as the discussions of spaces versus tabs or indentation size. When we enter someone’s apartment, even when it is decorated based…
Will it scale... down?
2021-09-01 · 5 minSome time ago, I wrote that there aren’t many more annoying questions than “…but will this scale?!”. We usually think prematurely about upscaling. Recently, I had the…
Generic does not mean Simple
2021-06-16 · 5 minAs you know, I am a fan and practitioner of CQRS.. I believe that it is falsely considered as complicated. In my opinion, it can help even with the classic CRUD approach…
Outbox, Inbox patterns and delivery guarantees explained
2020-12-30 · 8 minYesterday I was asked by Cezary about the transactional outbox pattern sample implementation. My answer was: https://twitter.com/oskar_at_net/status/134418424710032998…
Architect Manifesto
2020-11-29 · 7 min“Architects are not needed anymore. Those days are gone!” “We’re agile - we’re not doing waterfall, so we’re not designing upfront.” “We have autonomous teams that drive…