Cloud-specific software architecture patterns

This post is about software application architecture patterns that simplify application design by leveraging cloud features. New: Download the cloud pattern cheat sheet   Packaged configuration Packaged configuration cue cardWhatConfiguration is packaged with deployment artefactsMotivationSimplify system, increase resilience by removing runtime dependency on configuration serviceHowConfiguration is managed in configuration repository, CI/CD combines generic application artefact … Continue reading Cloud-specific software architecture patterns

Code reusability: from classes to containers

What is the right code granularity? I have previously written about reusing functionality [1] in the micro service context and found then that the old aim to optimise code footprint is a metric in need of a good overhaul. Ever since I'm happy that the idea is getting traction: Classes, libraries, applications OOP reuses code … Continue reading Code reusability: from classes to containers

Scalability through client-driven workflows

This post discusses a way to increase a service architecture's scalability by removing any communication paths between services and instead burdening clients with that communication. Bureaucracy in real life is a trade-off between ease of work for the applicant vs. ease of work for officers  In "Les 12 travaux d'Astérix" [1], Asterix and Obelix are … Continue reading Scalability through client-driven workflows

Of Babylonian kings or why technical users in user stories are OK

Every time a technical system impersonates a human in a user story, God drowns a kitten in an agile waterfall.-- Unknown User stories are supposed to advocate the user's view on a system's behaviour. Whatever technical systems which interface with "our" system think or do does not interest us. But why then is it so … Continue reading Of Babylonian kings or why technical users in user stories are OK