The Model-View-Presenter-Controller pattern

In this post I'll talk about the MVPC (Model-View-Presenter-Controller) design pattern I use in client applications such as progressive web apps and mobile clients. It can be best understood as an evolution of the MVC (model-view-controller) pattern past the MVP (model-view-presenter) pattern. The basics: MVC and MVP You might want to skip this section if … Continue reading The Model-View-Presenter-Controller pattern

Book of dark arts: storing data in the view

Pentagram, source Wikipedia. Towards the end of the year I'll indulge in the dark arts, join the goblins and leave my white architect hat under the Christmas tree where it belongs. I'm helping a friend (a technically minded, non-programmer) write his first mobile app . We wanted to keep everything simple: use technologies which can … Continue reading Book of dark arts: storing data in the view

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 card What Configuration is packaged with deployment artefacts Motivation Simplify system, increase resilience by removing runtime dependency on configuration service How Configuration is managed in configuration repository, … Continue reading Cloud-specific software architecture patterns

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

Defensive software architecture

In this, hopefully, last post on this blog of the year I will try to gather my scattered thoughts on software architecture and specifically the need for defensive software architecture, and substantiate it with anecdotal evidence from my own project work. I will first talk about my definition of architecture and that of an architect … Continue reading Defensive software architecture

Speeding up development by splitting a webapp into parts

I love tagfiles: they feature a well known syntax (EL from JSP), they allow for reusable UI components, they are well supported by my favourite IDE and, most importantly, modifications are instantly visible because the servlet container does not have to restart. At least in theory, because reality often looks different: after a few edits … Continue reading Speeding up development by splitting a webapp into parts

Stateless user sessions with encrypted session IDs

When trying to design for stateless services one finds it easy to reduce the information stored in an http session but for one piece: whether the client has authenticated against the server or not. Usually you would implement a proccess for authenticating like this: Client submits credentials (login / password) to the server Server checks … Continue reading Stateless user sessions with encrypted session IDs