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
This is a very simple DotNet Standard 2.0 package for receiving messages from AWS SQS in as simple a manner as I think is possible. Source code is on github https://github.com/RokitSalad/Helpful.Aws.Sqs.Receiver The package is available on nuget.org: https://www.nuget.org/packages/Helpful.Aws.Sqs.Receiver The package provides a few useful features which you don't get by default when using the AWS … Continue reading Helpful.Aws.Sqs.Receiver
"Don't overengineer this. We need to move as fast as we can."Too many business representatives The Agile Manifesto is built on 12 pillars, the 9th of which (at the time of writing) is: Continuous attention to technical excellence and good design enhances agility. I regard the Agile Manifesto as a thing of truth. It has … Continue reading Technical Excellence
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
Does Conway's Law have a dark side?
A dive into the many different ways developers can and should test.
Data refreshes are not the answer.
An essay on why software patterns become anti-patterns and how to avoid pattern rot.
I've discussed the merits of JSON streaming in two prior posts: Large JSON Responses and Don’t Stream JSON Data, if you haven't read these yet then take a quick look first, they're not long reads. I'm attracted to the highly scalable proposition of scaling out the consumer, so many requests can be made individually rather than returning a … Continue reading Don’t Stream JSON Data (Part 2)
I recently published a post about how to stream large JSON payloads from a webservice using a chunked response, before reading this post it's probably best to read that post here. Streaming is a fantastic method of sending large amounts of data with only a small memory overhead on the server, but for JSON data … Continue reading Don’t Stream JSON Data