Controversial opinion I haven't ever had any useful discussion about sagas with anyone at any company I've ever worked with. I've found the people who bring sagas up and make a song and dance about them, are generally the same people who tend to over-engineer solutions and have difficulty 'keeping it simple'. I'd like to … Continue reading Sagas and distributed transactions
Tag: Microservices
Helpful.Hosting.WorkerService.Windows/Systemd
A simple but flexible package to turn your commandline project into either a Windows Service or a Linux systemd service.
How to Design Decoupled Systems
Decoupled architecture is one of the biggest enablers of agility, speedy delivery, and high quality; yet many software designers have limited experience of what decoupled looks like. I hear people talk about different amounts of indirection and API layers, without understanding that these don't inherently decouple. I've been confronted with the insistence that because there's … Continue reading How to Design Decoupled Systems
Open vs Closed Distributed Processes
Distributed processes fall into two categories: open and closed. Open processes are started in one service and will finish in another after passing through any number of services in between. Closed processes are driven by one particular service from start to finish, and while other services may be involved, the originating service is in overall … Continue reading Open vs Closed Distributed Processes
Microservices with AWS Lambda
I've been building microservices for several years. I've mostly used DotNet, DotNet Core, and Ruby on Rails to build them, and I've generally deployed them either into AWS EC2, or Azure Service Fabric. I've found most enterprises aren't ready for managing microservices in containers, either in the cloud or their own data centres. Keeping things … Continue reading Microservices with AWS Lambda
Where Patterns go to Die
An essay on why software patterns become anti-patterns and how to avoid pattern rot.
Large JSON Responses
The long slog from a 15 year old legacy monolith system to an agile, microservice based system will almost inevitably include throwing some API's in front of a big old database. Building a cleaner view of the domain allows for some cleaner lines to be drawn between concerns, each with their own service. But inside … Continue reading Large JSON Responses
DDD Europe 2016
The Domain Driven Design Europe happened in January this year in Brussels. Recently, two presentations were made available: Eric Evan's keynote speech is available here. Greg Young presents 'A Decade of DDD, CQRS and Event Sourcing' here. Both are worth a watch. I was particularly interested to hear some of Greg's opinions on what patterns … Continue reading DDD Europe 2016
Integration Testing Behaviour with Mountebank
Developer's machine > dev shared environment > staging environment > UAT > production. Probably not exactly how everyone structures their delivery pipelines but probably not that far off. It allows instant feedback on whether what a developer is writing actually works with the code other developers are writing. And that's a really good thing. Unfortunately, it misses something... Each environment … Continue reading Integration Testing Behaviour with Mountebank
Going Deep Enough with Microservices
Moving from a monolith architecture to microservices is a widely debated process, with many recommendations and nuggets of advice available on the web in blogs like this. There are so many different opinions out there mainly because where an enterprise finds their main complexities lay depends on the skillsets of their technologists, the domain knowledge … Continue reading Going Deep Enough with Microservices



