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)
Tag: Software Development
Don’t Stream JSON Data
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
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
Getting FitNesse to Work
Sample code here. Recently I've been looking into Specification by Example, which people keep defining to me as BDD done the right way. Specification by Example fully implemented includes the idea of an executable specification. A concept that has led me back to FitNesse having given it the cold shoulder for the last six or seven years. … Continue reading Getting FitNesse to Work
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
PaaS
My last two clients have had completely contrasting views on PaaS, specifically on whether it should be used at all. Both clients deploy to AWS and Azure. Both want to embrace software volatility. Neither want to introduce unnecessary complexity. Both have a similarly scaled online offering where traffic is subject to peaks and troughs which … Continue reading PaaS
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
Events vs Commands
In the world of service oriented architectures and CQRS style processes there is a tendancy for nearly everything to raise events. Going back a few years however, before REST became fashionable many interactions were by RPC and often the result of processing commands from a queue. So when did commands become an anti-pattern? Well of … Continue reading Events vs Commands
User Secrets in asp.NET 5
Accidentally pushing credentials to a public repo has never happened to me, but I know a few people for whom it has. AWS have an excellent workaround for this by using credential stores that can be configured via the CLI or IDE but this technique only works for IAM user accounts, it doesn't allow you … Continue reading User Secrets in asp.NET 5