Tales of a reservation header image

Tales of a reservation


Are you relying on invariants and assuming trust in business rules? Distributed software systems disrupt most of our beliefs. They require a deep understanding of the business and a shift in the way we think. Let's see how the business affects the system design and what new opportunities come to life.

Continue reading...

You wanna test HTTP, right?


Tests generate confidence. Awesome. Sometimes we need to test components requiring HTTP, and we risk building complex test infrastructures that only erode confidence. What options do we have?

Continue reading...

On ViewModel Composition and UI Composition


We often confuse UI and ViewModel Composition. They are not the same thing and they solve different problems. We can use them in isolation but in most cases, they give their best when used in conjunction.

Continue reading...

Please welcome Model Binding and Formatters to ServiceComposer


Model binding frees the code from dealing with incoming payload content type and deserialization issues. It's a great way to move the attention from infrastructure code to business code. Model binding is now available in ServiceComposer.

Continue reading...

NServiceBus.IntegrationTesting baby steps


NServiceBus.IntegrationTesting started as an exploration activity and recently turned into a stable v1 release. V1 comes with some new features and one limitation that led to brainstorming options for the future.

Continue reading...

A thorough UX analysis is part of the solution


Decomposing a monolith is a satisfying exercise. In many cases, the decomposition process leads to a task-based user interface with its set of issues. We should not try to address those using either technology or architecture. A UX analysis is the way.

Continue reading...

To API, or not to API. Is this a real problem?


Breaking a public API is scary but sometimes unavoidable. Versioning an API is complex and error-prone. In many cases, I observed teams breaking an API that should not have been there to begin with, or fighting with versioning issues. The problem, though, was not the API.

Continue reading...