On Exceptions and Expected Business Failures
Introducing a domain layer made me reconsider how business failures and exceptions are handled, and what responsibility each architectural layer should have in that process.
This space is a collection of reflections on software architecture in general, and on bringing order to chaos in particular.
I believe good architecture is not about adding abstractions, but about reducing cognitive load and making systems easier to understand, evolve, and document.
I don’t claim to have all the answers. I’m simply documenting my journey and sharing what I learn along the way, in the hope that it might inspire others.
Introducing a domain layer made me reconsider how business failures and exceptions are handled, and what responsibility each architectural layer should have in that process.
Extracting a reusable Java DSL for generating Mermaid diagrams into an open-source library.
Getters and setters were introduced as a practical way to represent data in Java. Decades later, the convention has become so pervasive that it shapes how many developers interpret objects, often in ways the language itself never specifies.