PinnedScalability and SOA — Part 2 (Event-Driven SOA)In the previous post in this series, I wrote about scaling up vs out, why we chose scaling-out and why layered service models are not the…Jan 24, 2015Jan 24, 2015
Architecting for Change — Part III: Sources of ComplexityIn my previous post, I examined how complexity and cognitive load can hinder delivery, compromise security, and make systems more…Sep 1Sep 1
Architecting for Change — Part II: Complexity & Cognitive Load’s ImpactThe last post in this series discussed the implications of not architecting for change. I highlighted several issues that ultimately…Aug 18Aug 18
DDD MisconceptionsI have seen numerous implementations of DDD over the years, and during that time, I have noticed a few recurring misconceptions. Addressing…Jul 23Jul 23
Understanding the True Causes of High Logging CostsIn my previous blog post, I spoke about the evolution of observability, exploring its history and the rise of OpenTelemetry as a powerful…May 14May 14
Architecting for Change — Part I: Why Does It Matter?There are myriad reasons for change. Competition, evolving user expectations, technological advancements, regulations, bugs, security…May 11May 11
The Hidden Complexity of CRUDIn an age where microservices have become the architectural norm, it’s common to see service interfaces defined as simple CRUD endpoints…Jan 5Jan 5
Evaluating an Asynchronous Processing DesignI was recently asked to provide feedback on an implementation designed to decouple accepting requests in a service from processing them…Sep 14, 2024Sep 14, 2024
Targeted Event-Carried State TransferAnother flavour of microservices’ integrationJan 5, 2023Jan 5, 2023
Published inLevel Up CodingEvent-Carried State Transfer Integration in MicroservicesGood or Bad?Jan 3, 2023Jan 3, 2023