<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>The Introverted Architect</title><link>https://www.ashrafmageed.com/</link><description>Software Architecture, EDA, DDD, Microservices</description><item><title>Seeing Beyond the Boxes and Arrows</title><link>https://www.ashrafmageed.com/seeing-beyond-the-boxes-and-arrows/</link><guid>https://www.ashrafmageed.com/seeing-beyond-the-boxes-and-arrows/</guid><pubDate>Sun, 19 Jul 2026 00:00:00 GMT</pubDate><description>Two recent design discussions at work left me reflecting on a handful of recurring patterns that can prevent architecture conversations from moving forward. In…</description></item><item><title>Architecting for Change - Part V: Why Architecture Review Boards Make Complexity Worse</title><link>https://www.ashrafmageed.com/architecting-for-change-part-v-why-architecture-review-boards-make-complexity-worse/</link><guid>https://www.ashrafmageed.com/architecting-for-change-part-v-why-architecture-review-boards-make-complexity-worse/</guid><pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate><description>In the previous post in this series, I looked at accidental complexity and how it enters a system. When organisations begin to feel the effects of accidental…</description></item><item><title>Microservices Did Not Fail. The Boundaries Did.</title><link>https://www.ashrafmageed.com/microservices-did-not-fail-the-boundaries-did/</link><guid>https://www.ashrafmageed.com/microservices-did-not-fail-the-boundaries-did/</guid><pubDate>Sat, 25 Apr 2026 00:00:00 GMT</pubDate><description>This post comes off the back of a week of seeing the same old “microservices are bad, monoliths are good” arguments. In some contexts, that reaction is…</description></item><item><title>Architecting for Change Part IV: How Accidental Complexity Gets Into a System</title><link>https://www.ashrafmageed.com/architecting-for-change-part-iv-how-accidental-complexity-gets-into-a-system/</link><guid>https://www.ashrafmageed.com/architecting-for-change-part-iv-how-accidental-complexity-gets-into-a-system/</guid><pubDate>Sun, 19 Apr 2026 00:00:00 GMT</pubDate><description>Accidental complexity rarely announces itself. It usually arrives as drag. Changes that should be straightforward take longer than expected. Teams need more…</description></item><item><title>Lessons from the Trenches: CQRS, Event Sourcing, and the Cost of Tooling Constraints</title><link>https://www.ashrafmageed.com/cqrs-eventsourcing-and-the-cost-of-tooling-constraints/</link><guid>https://www.ashrafmageed.com/cqrs-eventsourcing-and-the-cost-of-tooling-constraints/</guid><pubDate>Mon, 22 Sep 2025 00:00:00 GMT</pubDate><description>Several years ago, I led the implementation of a set of CQRS-based, event-sourced microservices built using Domain-Driven Design (DDD) for a bank. From the…</description></item><item><title>Architecting for Change - Part III: Sources of Complexity</title><link>https://www.ashrafmageed.com/architecting-for-change-part-iii-sources-of-complexity-2/</link><guid>https://www.ashrafmageed.com/architecting-for-change-part-iii-sources-of-complexity-2/</guid><pubDate>Mon, 01 Sep 2025 00:00:00 GMT</pubDate><description>In my previous post, I examined how complexity and cognitive load can hinder delivery, compromise security, and make systems more difficult to evolve and…</description></item><item><title>Architecting for Change - Part II: Complexity &amp; Cognitive Load&apos;s Impact</title><link>https://www.ashrafmageed.com/architecting-for-change-part-ii-complexity-cognitive-loads-impact/</link><guid>https://www.ashrafmageed.com/architecting-for-change-part-ii-complexity-cognitive-loads-impact/</guid><pubDate>Mon, 18 Aug 2025 00:00:00 GMT</pubDate><description>The last post in this series discussed the implications of not architecting for change. I highlighted several issues that ultimately increase the cost of…</description></item><item><title>DDD Misconceptions</title><link>https://www.ashrafmageed.com/ddd-misconceptions/</link><guid>https://www.ashrafmageed.com/ddd-misconceptions/</guid><pubDate>Wed, 23 Jul 2025 00:00:00 GMT</pubDate><description>I have seen numerous implementations of DDD over the years, and during that time, I have noticed a few recurring misconceptions. Addressing these misconceptions…</description></item><item><title>Understanding the True Causes of High Logging Costs</title><link>https://www.ashrafmageed.com/understanding-the-true-causes-of-high-logging-costs/</link><guid>https://www.ashrafmageed.com/understanding-the-true-causes-of-high-logging-costs/</guid><pubDate>Wed, 14 May 2025 00:00:00 GMT</pubDate><description>In my previous blog post, I spoke about the evolution of observability, exploring its history and the rise of OpenTelemetry as a powerful tool to tackle modern…</description></item><item><title>Architecting for Change - Part I: Why Does It Matter?</title><link>https://www.ashrafmageed.com/architecting-for-change-part-i-why-does-it-matter/</link><guid>https://www.ashrafmageed.com/architecting-for-change-part-i-why-does-it-matter/</guid><pubDate>Sun, 11 May 2025 00:00:00 GMT</pubDate><description>There are myriad reasons for change. Competition, evolving user expectations, technological advancements, regulations, bugs, security fixes, performance…</description></item><item><title>The Hidden Complexity of CRUD</title><link>https://www.ashrafmageed.com/the-hidden-complexity-of-crud/</link><guid>https://www.ashrafmageed.com/the-hidden-complexity-of-crud/</guid><pubDate>Sun, 05 Jan 2025 00:00:00 GMT</pubDate><description>In an age where microservices have become the architectural norm, it’s common to see service interfaces defined as simple CRUD endpoints. At first glance, this…</description></item><item><title>The Evolution of Observability</title><link>https://www.ashrafmageed.com/observability-2/</link><guid>https://www.ashrafmageed.com/observability-2/</guid><pubDate>Sun, 17 Nov 2024 00:00:00 GMT</pubDate><description>Observability&apos;s origin story starts in control theory. Control theory is a field of engineering and mathematics that deals with understanding and influencing…</description></item><item><title>Evaluating an Asynchronous Processing Design</title><link>https://www.ashrafmageed.com/evaluating-async-process-design/</link><guid>https://www.ashrafmageed.com/evaluating-async-process-design/</guid><pubDate>Sat, 14 Sep 2024 00:00:00 GMT</pubDate><description>I was recently asked to provide feedback on an implementation designed to decouple accepting requests in a service from processing them. Initially, I intended…</description></item><item><title>Targeted Event-Carried State Transfer</title><link>https://www.ashrafmageed.com/targeted-event-carried-state-transfer/</link><guid>https://www.ashrafmageed.com/targeted-event-carried-state-transfer/</guid><pubDate>Thu, 05 Jan 2023 00:00:00 GMT</pubDate><description>Another flavour of microservices’ integration</description></item><item><title>Event-Carried State Transfer Integration in Microservices</title><link>https://www.ashrafmageed.com/event-carried-state-transfer-integration-in-microservices/</link><guid>https://www.ashrafmageed.com/event-carried-state-transfer-integration-in-microservices/</guid><pubDate>Tue, 03 Jan 2023 00:00:00 GMT</pubDate><description>Good or Bad?</description></item><item><title>Re-designing a Leaky Microservice Integration</title><link>https://www.ashrafmageed.com/reimplementingleakyintegration/</link><guid>https://www.ashrafmageed.com/reimplementingleakyintegration/</guid><pubDate>Thu, 29 Dec 2022 00:00:00 GMT</pubDate><description>Embracing Behavioural Coupling</description></item><item><title>Read Models Spanning Microservices’ Boundaries</title><link>https://www.ashrafmageed.com/read-models-spanning-microservices-boundaries/</link><guid>https://www.ashrafmageed.com/read-models-spanning-microservices-boundaries/</guid><pubDate>Mon, 26 Dec 2022 00:00:00 GMT</pubDate><description>Or glorified data caches</description></item><item><title>Event Sourcing — Oops, wrong Aggregate Boundary</title><link>https://www.ashrafmageed.com/event-sourcing-oops-wrong-aggregate-boundary/</link><guid>https://www.ashrafmageed.com/event-sourcing-oops-wrong-aggregate-boundary/</guid><pubDate>Thu, 24 Nov 2022 00:00:00 GMT</pubDate><description>How I shared streams to split an aggregate and why.</description></item><item><title>Sagas — Part 4: Design Considerations Continued</title><link>https://www.ashrafmageed.com/sagas-part-4-design-considerations-continued/</link><guid>https://www.ashrafmageed.com/sagas-part-4-design-considerations-continued/</guid><pubDate>Wed, 09 Nov 2022 00:00:00 GMT</pubDate><description>Exceptions, Cancellation, Idempotency and Isolation</description></item><item><title>Leaky Event-Based Microservices’ Integration</title><link>https://www.ashrafmageed.com/leaky-event-based-microservices-integration/</link><guid>https://www.ashrafmageed.com/leaky-event-based-microservices-integration/</guid><pubDate>Mon, 31 Oct 2022 00:00:00 GMT</pubDate><description>When Events are Passive-Aggressive Commands</description></item><item><title>Sagas — Part 4: Design Considerations</title><link>https://www.ashrafmageed.com/sagas-part-4-design-considerations/</link><guid>https://www.ashrafmageed.com/sagas-part-4-design-considerations/</guid><pubDate>Mon, 24 Oct 2022 00:00:00 GMT</pubDate><description>Sagas — Part 1: An Introduction Sagas — Part 2: Sagas in Distributed System Sagas — Part 2b: Sagas in Distributed Systems Continued Sagas…</description></item><item><title>Sagas — Part 3: Choreography Instead?</title><link>https://www.ashrafmageed.com/sagas-part-3-choreography-instead/</link><guid>https://www.ashrafmageed.com/sagas-part-3-choreography-instead/</guid><pubDate>Mon, 10 Oct 2022 00:00:00 GMT</pubDate><description>When to Choose Choreography</description></item><item><title>Sagas — Part 2b: Sagas in Distributed Systems Continued</title><link>https://www.ashrafmageed.com/sagas-part-2b-sagas-in-distributed-systems-continued/</link><guid>https://www.ashrafmageed.com/sagas-part-2b-sagas-in-distributed-systems-continued/</guid><pubDate>Fri, 07 Oct 2022 00:00:00 GMT</pubDate><description>Pragmatism and Boundaries</description></item><item><title>Sagas — Part 2: Sagas in Distributed Systems</title><link>https://www.ashrafmageed.com/sagas-part-2-sagas-in-distributed-systems/</link><guid>https://www.ashrafmageed.com/sagas-part-2-sagas-in-distributed-systems/</guid><pubDate>Wed, 28 Sep 2022 00:00:00 GMT</pubDate><description>In the previous post in this series, I briefly touched on why distributed transactions are not suitable in distributed systems:</description></item><item><title>Sagas — Part 1: An Introduction</title><link>https://www.ashrafmageed.com/sagas-part-1-an-introduction/</link><guid>https://www.ashrafmageed.com/sagas-part-1-an-introduction/</guid><pubDate>Tue, 20 Sep 2022 00:00:00 GMT</pubDate><description>Orchestration and Sagas</description></item><item><title>Re-designing an Aggregation Microservice — Part 3</title><link>https://www.ashrafmageed.com/re-designing-an-aggregation-microservice-part-3/</link><guid>https://www.ashrafmageed.com/re-designing-an-aggregation-microservice-part-3/</guid><pubDate>Sun, 11 Sep 2022 00:00:00 GMT</pubDate><description>Re-designing an Aggregation Microservice — Part 1</description></item><item><title>Re-designing an Aggregation Microservice — Part 2</title><link>https://www.ashrafmageed.com/re-designing-an-aggregation-microservice-part-2/</link><guid>https://www.ashrafmageed.com/re-designing-an-aggregation-microservice-part-2/</guid><pubDate>Thu, 14 Jul 2022 00:00:00 GMT</pubDate><description>In the first post in this series, I introduced the current design of the reporting service. And discussed some of the issues with that…</description></item><item><title>Re-designing an Aggregation Microservice — Part 1</title><link>https://www.ashrafmageed.com/re-designing-an-aggregation-microservice-part-1/</link><guid>https://www.ashrafmageed.com/re-designing-an-aggregation-microservice-part-1/</guid><pubDate>Thu, 07 Jul 2022 00:00:00 GMT</pubDate><description>I was involved in a recent discussion regarding how to improve a reporting microservice that aggregates data from numerous services. There…</description></item><item><title>Re-implementing the Outbox Pattern in MongoDB</title><link>https://www.ashrafmageed.com/outboxmongo/</link><guid>https://www.ashrafmageed.com/outboxmongo/</guid><pubDate>Mon, 13 May 2019 00:00:00 GMT</pubDate><description>I have blogged previously about how we implemented the Outbox pattern on top of SQL Server and Websphere MQ to avoid distributed…</description></item><item><title>DTC-Enforced Constraints</title><link>https://www.ashrafmageed.com/dtcenforcedconstraints/</link><guid>https://www.ashrafmageed.com/dtcenforcedconstraints/</guid><pubDate>Mon, 31 Oct 2016 00:00:00 GMT</pubDate><description>There are numerous blogs and talks out there about why you should or should not use distributed transaction coordinators (DTC) and they…</description></item><item><title>Avoiding Distributed Transactions — Outbox Pattern</title><link>https://www.ashrafmageed.com/outboxpattern/</link><guid>https://www.ashrafmageed.com/outboxpattern/</guid><pubDate>Mon, 21 Mar 2016 00:00:00 GMT</pubDate><description>I’m currently architecting a payment system for domestic payments for a UK bank. This is a greenfield system that is going to consist of a…</description></item><item><title>Scalability and SOA — Part 3 (UI Composition)</title><link>https://www.ashrafmageed.com/scalability3/</link><guid>https://www.ashrafmageed.com/scalability3/</guid><pubDate>Sat, 07 Feb 2015 00:00:00 GMT</pubDate><description>In part 2, I briefly covered Event-Driven SOA and why event messages are preferred for communication between services. I also stated that…</description></item><item><title>Scalability and SOA — Part 2 (Event-Driven SOA)</title><link>https://www.ashrafmageed.com/scalability2/</link><guid>https://www.ashrafmageed.com/scalability2/</guid><pubDate>Sat, 24 Jan 2015 00:00:00 GMT</pubDate><description>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 answer. In this post,…</description></item><item><title>Scalability and SOA - Part 1</title><link>https://www.ashrafmageed.com/scalability/</link><guid>https://www.ashrafmageed.com/scalability/</guid><pubDate>Mon, 22 Dec 2014 00:00:00 GMT</pubDate><description>In this series of posts, I will discuss the challenges I faced developing a highly scalable and highly available SaaS product using a Service-Oriented…</description></item></channel></rss>