Here’s a myth that won’t die: your Bounded Contexts should map 1 on 1 to your business domains. It sounds clean and logical, but it’s wrong.| Mathias Verraes
A joke| Mathias Verraes' Blog
My 20+ tips as a conference organiser| Mathias Verraes' Blog
An efficient process for fixing bugs that saves times and reduces regressions.| Mathias Verraes' Blog
When do you choose to do a major redesign, and how to do you prepare your organisation for it to succeed?| Mathias Verraes' Blog
Implicit worldviews underlie our design choices. Exposing them can generate better options.| Mathias Verraes' Blog
Mathias Verraes' blog| Mathias Verraes' Blog
Interview by Tim Bourguignon on the Software Developers Journey Podcast| Mathias Verraes' Blog
Improvised presentation on building a parser using pure functional programming in PHP.| Mathias Verraes' Blog
Understandability boundaries are separations that look at how concepts in our system are understood together (or autonomously).| Mathias Verraes' Blog
Interview by Tom Klaasen, Software Captains founder| Mathias Verraes' Blog
Our worldviews are grown from other people’s models. How do we control what models we let in?| Mathias Verraes' Blog
Interview by Len Epp, Leanpub co-founder| Mathias Verraes' Blog
Our worldviews are grown from other people’s models. How do we control what models we let in?| Mathias Verraes' Blog
Podcast discussion with Alex Bolboacă| Mathias Verraes' Blog
Within a Domain Event, use separate timestamps to distinguish when the event occurred and when it was captured.| Mathias Verraes' Blog
Acknowledge your loss aversion bias to identify solutions that incur a loss| Mathias Verraes' Blog
Modelling as the opportunity to create novel concepts.| Mathias Verraes' Blog
When a complex technical domain isn’t easily captured in a model, look for metaphors that bring clarity.| Mathias Verraes' Blog
Conversation with Ryan Shriver| Mathias Verraes' Blog
A definition of DDD as a software design discipline| Mathias Verraes' Blog
Reframing the problem through design.| Mathias Verraes' Blog
Why feeling that you understand a new idea, is a sign that you didn't.| Mathias Verraes' Blog
Simple models are more wrong than complex ones, but they can be useful to detect problems, and to kickstart more suitable models.| Mathias Verraes' Blog
Bounded Contexts and their interfaces are governed by fundamental tensions that affect our design| Mathias Verraes' Blog
Evaluate a novel idea by swapping the old and the new idea in time.| Mathias Verraes' Blog
Comparison of two common interpretations of eventsourcing; and proposing a definition.| Mathias Verraes' Blog
Design Patterns express a problem in a context with a reusable solution.| Mathias Verraes' Blog
How reasoning with time helps you model software better than structure.| Mathias Verraes' Blog
Refine a model and its language until opportunities for better Bounded Contexts emerge.| Mathias Verraes' Blog
Embed more meaning in messages by using verbs.| Mathias Verraes' Blog
Explicitly conform to the legacy component's model in an eventsourcing migration.| Mathias Verraes' Blog
Store the outcome of a decision to guard against rule changes.| Mathias Verraes' Blog
Only keep one event per time unit from a high frequency stream.| Mathias Verraes' Blog
An event's lifetime lasts until the next event.| Mathias Verraes' Blog
Listen to a stream of events and produce a new event when a value changes.| Mathias Verraes' Blog
Encrypt sensitive information in an event and delete the key.| Mathias Verraes' Blog
Store the sensitive payload of an event in a separate store to control access and removal.| Mathias Verraes' Blog
Explicitly segregate a Bounded Context's events in visibility layers, with their own language.| Mathias Verraes' Blog
Add redundant information to a Domain Event to reduce complexity in the consumer.| Mathias Verraes' Blog
Mark a small subset of events as public, keep the rest private by default.| Mathias Verraes' Blog
Replace cron jobs and scheduled commands, with an agnostic event to indicate the passage of time.| Mathias Verraes' Blog
Instead of emitting a stream of Domain Events, emit a single Summary.| Mathias Verraes' Blog
Replace Free Queries with Domain Queries to decouple from knowledge of the server's internals.| Mathias Verraes' Blog
Design the set of Domain Events from a producer so that they can be used to rebuild the producer's state.| Mathias Verraes' Blog
Distilling your design heuristics using practical examples.| Mathias Verraes' Blog
Mathias Verraes' blog| Mathias Verraes' Blog
How sticky metaphors can communicate better software models.| Mathias Verraes' Blog
How understanding the history of systems aids strategic decisions| Mathias Verraes' Blog
Mathias Verraes' blog| Mathias Verraes' Blog
A common belief is that gated reviews lead to blaming individuals. The opposite can be true.| Mathias Verraes' Blog
A temporal view of business problems leads to deeper models.| Mathias Verraes' Blog
When Context Mapping a complex environment, indicate the Life Expectancy of each Bounded Context, as well as its sponsors and other relevant metadata.| Mathias Verraes' Blog
About telling non-linear stories with stickies, and visualising complications in Event Stormed models.| Mathias Verraes' Blog
Differentiating between informational, interrogatory, and imperative messages, and keeping them nicely separated.| Mathias Verraes' Blog
Migrate test levels to improve the long term sustainability of your test suite.| Mathias Verraes' Blog
Run an experiment to learn how much unit tests you actually need.| Mathias Verraes' Blog
The Erlang view of the world is that everything is a process and that processes can interact only by exchanging messages.| Mathias Verraes' Blog
map(divide(__, 2), __) and other excursions into elegant functional programming in PHP| Mathias Verraes' Blog
Domain Events allow you to segregate the models of different systems| Mathias Verraes' Blog
Is writing code all day all you need to do to become a better programmer?| Mathias Verraes' Blog
How to improve when you don't know how to improve| Mathias Verraes' Blog
Even in the real world, the potential behaviours of an object are essential to that object.| Mathias Verraes' Blog
Presentation on Domain-Driven Design, CRUD, Task-based UI's, Commands, Events, ...| Mathias Verraes' Blog
The Anchoring Bias, well-known to psychologists, prevents you from making quality estimates.| Mathias Verraes' Blog
Expressing the Ubiquitous Language helps us to get rid of the Feature Envy code smell.| Mathias Verraes' Blog
More Event Storming insights: picking good domains, modelling branches using duplication, and creative visualisation.| Mathias Verraes' Blog
Are you sweeping technical debt under the rug?| Mathias Verraes' Blog
Asking for estimates can cost you more than you think. When you do estimate, take into account time, complexity, and risk.| Mathias Verraes' Blog
Static methods? Yes, when they are stateless.| Mathias Verraes' Blog
Don't limit yourself by PHP's single constructor. Use static factory methods.| Mathias Verraes' Blog
A CQRS architecture can be seen as a set of referentially transparent functions that model decisions and interpretation.| Mathias Verraes' Blog
Composition, strategies, callbacks, plugins, event listeners, ... are all valid ways to extend without inheritance.| Mathias Verraes' Blog
How we made continuous improvement truly continuous, using stickies, a timeline, and few minutes each day.| Mathias Verraes' Blog
A step by step guide to building your very first Event Sourced Aggregate.| Mathias Verraes' Blog
REST: The language of the future, or opium for the masses?| Mathias Verraes' Blog
My recent attempt at explaining Bounded Contexts at @DDDBE, was criticised for being too heavy on terminology. Rinse, adjust, repeat.| Mathias Verraes' Blog
Gentle introductions to DDD by the founders of DDD Belgium.| Mathias Verraes' Blog
Context Mapping is about the whitespace between systems, and the bandwidth of the communications.| Mathias Verraes' Blog
Just because two behaviours lead to the same outcome, does not mean they are replaceable.| Mathias Verraes' Blog
CQRS challenges the assumption that reading and writing are supposed to share the same abstractions.| Mathias Verraes' Blog
Separate value objects in your model from concepts that serve the UI.| Mathias Verraes' Blog
Rules, benefits, patterns, and anti-patterns for reviewing code before merging it.| Mathias Verraes' Blog
Use a verb to build a sentence. There will be no translation to code in your brain. The sentence _is_ the code.| Mathias Verraes' Blog
An overview of my different series on patterns in distributed systems.| Mathias Verraes' Blog
Make a clear distinction between different layers of validation.| Mathias Verraes' Blog
The impact of the Inverse Conway Manoeuvre is constrained by the flexibility of the system. A reorganisation can’t fix a broken design.| Mathias Verraes' Blog
How designing for business opportunities and the rate of change may give you better contexts.| Mathias Verraes' Blog
A method for making technical debt visible and negotiable.| Mathias Verraes' Blog