Featured

The Evolution of AI-Led Engineering: From Auto-Complete to Spec-Driven Development

<p class="wp-block-paragraph">AI is reshaping our software engineering practice in successive waves, it started with auto completion and predictive text, we the drove into prompt engineering, and more recently into context engineering, and is now we are evolving/narrowing towards spec-driven development to create new software and understand and modernise legacy software with greater accuracy, speed and…More

Featured

Streaming Design Patterns

<p class="wp-block-paragraph">In the previous post, we compared streaming, messaging, and orchestration, delineating their distinct roles and applications in modern data architecture. Building on that foundation, this post zeroes in on streaming and its design patterns. Streaming, a critical component in handling real-time data, is not a monolith; it encompasses various design patterns each suited for…More

Featured

Understanding Streaming Concepts for Microservices

<p class="wp-block-paragraph">The evolution of data processing in microservices architecture has brought to the forefront three pivotal concepts: streaming, messaging, and orchestration. Each plays a unique role in the way modern applications handle data and interactions. This post is dedicated to demystifying these concepts, offering insights into their functionalities and applicabilities</p> <p class="wp-block-paragraph">As microservices continue to…More

Featured

10 Lessons from Building a Full-Stack SaaS Product: It was fun!

<p class="wp-block-paragraph">I have always been passionate about rapidly solving problems for businesses, so when I learned of the challenges my friend’s business was facing due software constraints, I was inspired – especially since I was on holidays</p> <p class="wp-block-paragraph">I had 2-weeks of break during my 1.5 month long vacation where socialising and travel would be…More

Featured

Quality Distributed Solution Architecture: Part 3 – Techniques for Early Validation of Architecture and Design

<p class="wp-block-paragraph">In our previous 2 posts we looked at the current state of solution architecture and design, especially how there is no validation against real data until it hits production. </p> <p class="wp-block-paragraph">In this post, we explore various techniques to validate architecture and design beyond thought experiments and architecture councils. Implementing these techniques early in…More

Featured

Quality Distributed Solution Architecture: Part 2 – Cost of poor Architecture and Design

<p class="wp-block-paragraph">In our previous post, we delved into the pitfalls of static solution architecture and how it leads to inadequate quality checks until a solution is put into production. In this post, we shift our focus to analyzing the cost and implications of such an approach. The impact of static solution architecture varies with the…More

Featured

Quality Distributed Solution Architecture: Part 1 – Static and Untested Architecture drives Outcomes in Current State

<p class="wp-block-paragraph">In the rapidly evolving landscape of technology and business needs, solution architecture plays a pivotal role in aligning IT strategies with business objectives. However, the prevailing approach to <strong>solution architecture and design</strong> is notably <strong>static</strong>, characterized by upfront planning and decision-making. In this 3 part series, we explore the current processes for solution design,…More

Featured

Modernisation Strategies for Legacy MVC Applications: Beyond the lift and shift with modular architecture and DDD

<p class="wp-block-paragraph">Legacy MVC applications, whether they’re nestled in Java or .NET, have been the backbone of many organizations. Hosted on WebLogic, WebSphere, or other similar containers, these systems have stood the test of time. But as the digital landscape evolves, the question arises: “How do we modernise these stalwarts without losing their essence?” </p> <p…More

Featured

Higher ROI with Accelerated Delivery through Business Oriented Modular Service Design Practices

<p class="wp-block-paragraph">Modular services are composable building blocks for rapid application in new and varied business needs and solution contexts. A modular approach promotes accelerated delivery of value (less components to build and release), lower overall operational footprint (as we do not rebuild the same functionality multiple times) and lower operating costs (smaller ops teams, licensing…More

Featured

Signal Over Noise: Best Practices in Event-Driven Architecture Design

<p class="wp-block-paragraph">As <strong>event-driven </strong>platform take off ✈️ with modern integration practices such as <strong>data-in-motion</strong>, organisations are <strong><em>integrating</em> <em>significantly large number</em> of data and event streams</strong> 📈 without <strong>deliberate and up front design</strong> these growing streams are contributing to <strong>noise, complexity and coupling leading to</strong> higher implementation (CAPEX) and operating (OPEX) costs. In this post we…More

Featured

Reviving the Data Hub Strategy: Why Integration matters in Data Management

<p class="wp-block-paragraph">The Gartner iPaaS magic quadrant for 2023 is out (<a href="https://www.gartner.com/doc/reprints?id=1-2BSDJCBH&ct=221122&st=sb">%5B1%5D</a&gt;) and while we shred the infographic and debate the best in breed etc, one key observation from someone in the integration domain has been that we have become quite good at building and delivering system integration solutions through mature platforms, tools and processes</p>…More

Featured

Modernising Systems: Applying Domain Driven Design (DDD) for modern software re-achitecture

<p class="wp-block-paragraph">In this post we focus on modernisation focussed on monolithic databases</p> <p class="wp-block-paragraph">Data stores within an organisation can over time grow in complexity especially as engineers/database admins and business look to use the same data store in multiple ways for cost-effective solutions. We find that organisations optimise for cost by using common data stores…More

Featured

Accelerate Complex Delivery with Platform APIs & Orchestration

<p class="wp-block-paragraph">Enterprise integration solutions these days tend to span <strong>multiple platforms</strong> across Cloud and On-Premise locations to deliver large complex programs. The <strong>management</strong> of these platforms needs to be <em>fast, precise and continuous</em> to ensure there are no bottlenecks to delivery as the solution development flows through its lifecycle</p> <p class="wp-block-paragraph">This means creating environments across…More

Featured

Microservices Boundaries and Cross-Cutting Solutions Problem: How do we stay bounded?

<p class="wp-block-paragraph">One huge problem with building microservices is how they are used in new solutions without gradually turning the shiny, separated, autonomous services into slow-to-change, hard-to-regression test, inter-dependent big balls of mud</p> <p class="wp-block-paragraph">There is this temptation to wire things up and make changes to expand our services to <em>fit </em>a new solution, however this…More

Featured

Strategic DDD Outcomes: Top Domain model to Team Topologies

<p class="wp-block-paragraph">Over the past couple of years, I have been working with architecture and engineering teams to teach and apply strategic and tactical domain driven design. I will come back with lessons learned in a future post, but this one covers the outcome of these teaching plus consulting engagements for strategic DDD</p> <p class="wp-block-paragraph">Remember, strategic…More

Featured

Technology Services Modernization (Part II): Why design-first approach with DDD delivers greater value

<p class="wp-block-paragraph">In the previous post (<a href="https://alok-mishra.com/2022/02/28/3-ways-to-technology-service-modernization/&quot; target="_blank" rel="noreferrer noopener">here</a>) we looked at 3 ways to modernize technology services and concluded the best strategic approach was to start with the why, map business domains, capabilities, services and modernize through good internal practices that make software teams aligned to capabilities, autonomous and therefore nimble to respond…More

Featured

Business Services and APIs: 101

<p class="wp-block-paragraph">Business oriented service design and implementation is becoming increasing popular with organisations looking to move beyond traditional systems integration led services. This top-down approach needs to start with business domain owners and their processes, documenting the core and supporting business capabilities they present to their customers so that they can be analysed to produce…More

Featured

How does having an API Catalogue accelerate Business Integration?

<p class="wp-block-paragraph">An API Catalogue is a view of <strong>your business products</strong> <em>expressed</em> as <strong>technical services</strong> as visible to <strong>internal and external</strong> consumers to <strong>facilitate fast and self-service integration</strong> to deliver richer value to end customers and deliver it faster</p> <p class="wp-block-paragraph">An API Catalogue lets your customers <em>view</em> and <em>interact</em> with your <strong>product</strong> <strong>brouchre</strong></p> <p class="wp-block-paragraph">A…More

Featured

Mapping Business Capabilities to Services

<p class="wp-block-paragraph">One of the key questions around API strategy we get asked is <em>how do we map business capabilities to services</em>. An approach is to use domain driven design and build domain services, in this post we will look at what this looks like</p> <p class="wp-block-paragraph"><strong>Capabilities</strong> </p> <p class="wp-block-paragraph">Businesses domains offer capabilities. Given domains are…More

Featured

Software Monoliths

Companies need to modernize software and engineering to scale to reach new customers. Many find it increasingly hard to deliver outcomes safer and faster in a rapidly changing business ecosystem because of internal complexity from existing practices, systems and integrations. One cause is “shared” collaboration of resources between teams and in this post we explore these monoliths and monolithic practices More

Featured

Messaging, Events and Data-in-Motion: Asynchronous communication patterns

<p class="wp-block-paragraph">When integrating systems we often end-up writing <strong>asynchronous</strong> messaging interfaces for mostly system-to-system communications. This conversation technique is great because it does not require the sender and receiver to stay connected to each other in a session at the same instance in time, it is non-blocking and often brokered (like the post office which…More

Featured

Single Entity, Multiple Master: Manage Complexity with Domain Services Integration Pattern

<p class="wp-block-paragraph">We often think of enterprise systems as the master systems for one or more enterprise data entities. We believe the lifecycle of the entity is contained and managed by users in a system in an encapsulated and convenient manner. However, there are scenarios where multiple systems master an entity and this is often because…More

Featured

Design-first API Contracts: Key to accelerating Integration and Improving API Quality

<p class="wp-block-paragraph">Service specifications along with developer documentation are key to turning your APIs into products. A well written and standards based API contract can not only make it faster and easier to integrate but also to test and deliver a solution faster</p> <p class="wp-block-paragraph">Good API contracts help <em>improve</em> key software delivery metrics such as <strong>lead…More

AI-Led Engineering Part 2: Design Shifts Left

<p>In our previous post, we explored how AI is changing the engineering delivery model from months to days. We looked at the compression of traditional SDLC phases and the emergence of prompt-based development. Now we turn to what this means for design — and why the classic research-diverge-converge-handoff model is becoming a liability.</p> <p>The traditional…More

Integration Patterns 2026: Data Integration + Messaging (Bulk, Delta, Notifications)

<p class="wp-block-paragraph">I started the year using Gemini Pro to take our integration patterns and covert them into “playing card” style pattern library so that we can print and play! The content is mine, I used AI to generate the images with still a few issues with image text – oh well, maybe something to refine…More

Integration Patterns 2026: Asynchronous Bulk Read (Polling, Events, Shared Locations)

<p class="wp-block-paragraph">I started the year using Gemini Pro to take our integration patterns and covert them into “playing card” style pattern library so that we can print and play! The content is mine, I used AI to generate the images with still a few issues with image text – oh well, maybe something to refine…More

Integration Patterns 2026: Query Patterns (Consistency vs Availability)

<p class="wp-block-paragraph">I started the year using Gemini Pro to take our integration patterns and covert them into “playing card” style pattern library so that we can print and play! The content is mine, I used AI to generate the images with still a few issues with image text – oh well, maybe something to refine…More

Integration Patterns 2026: Command Patterns (Writes, Idempotency, Consistency)

<p class="wp-block-paragraph">I started the year using Gemini Pro to take our integration patterns and covert them into “playing card” style pattern library so that we can print and play! The content is mine, I used AI to generate the images with still a few issues with image text – oh well, maybe something to refine…More

Episodic Memory Patterns for Enterprise Agents

<p class="p3 wp-block-paragraph">Most enterprise AI systems today still run on chunks. Paragraph boundaries. Token limits. Random slices of logs. That works for search. It starts to wobble when you ask an agent to reason about a journey that unfolded over time: a claim, an incident, a migration, an integration change.</p> <p class="p3 wp-block-paragraph">So this post…More

A 2026 Memory Stack for Enterprise Agents

<p class="p3 wp-block-paragraph">In my previous post on LLM memory evolution through 2024-2025 we saw the shift from prompting to context engineering and use of techniques such as RAG, GraphRAG etc. Now lets examine this use case for memory when building more complex flows with LLMs to do a series of steps in an “agentic flow”…More

From Prompting and Context Engineering to Memory Architecture

<p class="p3 wp-block-paragraph">Over the last couple of years we observed that Large Langeuage Model (LLM) usage also known as “GenAI”, did not just stop at prompt engineering. We moved through context engineering by providing prompts and other information as context to get better and more accurate one shot answers and then in Software Engineering we…More

Beyond CRUD: Choosing the Right API Style

<h2 class="wp-block-heading">Introduction</h2> <p class="wp-block-paragraph">Most engineers begin their API journey with CRUD. It teaches how to expose resources, wire endpoints, and push data in and out. But in production systems, APIs do more than shuttle JSON: they enforce contracts, define system boundaries, and dictate performance envelopes. The style and protocol you choose for an API ripple…More

<p class="p3 wp-block-paragraph">We have worked with Integration and Data platform owners and are observing their needs converge as business owners are looking beyond the initial integration usecase to more real-time business analytics and insights to respond to the market pressures, customer needs, risks and compliance imperatives faster</p> <p class="p3 wp-block-paragraph">It is with this need we…More

Java Tools and Tips

<p class="wp-block-paragraph">Here is the latest in Java tools and libraries we have been haing through 2024 and into 2025. JaCoCo and Gatling have been staple as we continue to shift left with QA, we are yet to do Mutation testing in anger</p> <p class="p1 wp-block-paragraph">Tools:</p> <p class="p1 wp-block-paragraph"><strong>Architecture</strong>:</p> <p class="p3 wp-block-paragraph">ArchUnit: A library for checking…More

Kubernetes vs. Serverless: Choosing the Right Architecture

<p class="wp-block-paragraph">As we journey through our comprehensive series on Kubernetes, we’ve explored its foundational aspects, intricate design patterns, and its pivotal role in the realm of containerization</p> <p class="wp-block-paragraph">Now, as we approach the final chapter of our series, we turn our attention to a critical comparison – Kubernetes versus Serverless computing. This exploration is key…More

Mastering Containerization: Kubernetes at the Forefront

<p class="wp-block-paragraph">As we continue our exploratory series on Kubernetes and its pivotal role in shaping microservices, we’ve covered its foundational aspects and essential design patterns. Now, we delve into the details of <strong>containerization</strong> – the very heart of Kubernetes. </p> <p class="wp-block-paragraph">This post will illuminate how Kubernetes is not just facilitating but mastering the art…More

Kubernetes for Developers: Streamlining Microservices Deployment

<h3 class="wp-block-heading"><strong>Introduction</strong></h3> <p class="wp-block-paragraph">In our ongoing series exploring the pivotal role of Kubernetes in microservices, we have unearthed its foundational significance and delved into the essential design patterns. </p> <p class="wp-block-paragraph">Continuing this journey, we now turn our focus to developers. This post is crafted for developers aiming to streamline their workflow in the microservices domain.…More

Design Patterns in Kubernetes: Blueprint for Robust Microservices

<h4 class="wp-block-heading"><strong>Introduction</strong></h4> <p class="wp-block-paragraph">In the previous post we introduced Kubernetes and containerization for microservices. In the world of microservices, Kubernetes emerges not only as a platform but as a harbinger of design patterns that revolutionize how we build, deploy, and scale applications. In the second post of the series, we talk about Kubernetes Design patterns…More

Unraveling Kubernetes: The Gateway to Efficient Microservices

<p class="wp-block-paragraph">Kubernetes, often hailed as the cornerstone of modern microservices architecture, stands as a beacon of efficiency and scalability in the ever-evolving landscape of software development. In a series of posts I will be describing key concepts and comparing with other technologies for microservice engineers</p> <p class="wp-block-paragraph">The posts will cover</p> <h2 class="wp-block-heading">Introduction</h2> <p class="wp-block-paragraph">In this…More

Is Your Software Release Strategy Up to Date? Feature Toggling vs Direct Release

<p class="wp-block-paragraph">Feature toggling is a dynamic method to manage software features, allowing developers to turn features on or off without deploying new code. This technique provides flexibility in controlling the availability of features in your application, especially useful in a continuous delivery environment.</p> <h2 class="wp-block-heading">Why Use Feature Toggling?</h2> <p class="wp-block-paragraph">Feature toggles offer several benefits:</p> <h3…More

Choosing the Right Architecture: Comparing Serverless, Containers, and Platform-as-a-Service (PaaS) for Microservices Applications

<p class="wp-block-paragraph">As 2023 draws to a close, the world of Microservices continues to evolve rapidly, bringing with it an array of buzzwords and technologies that are as fascinating as they are complex. You’ve likely encountered terms like ‘Serverless’, dabbled in the dynamic world of Containers, and casually mentioned ‘K8s’ and ‘Container Registry’ in tech discussions.…More

Mastering the Dual: Strategic Data Synchronization in Domain API Architecture

<p class="wp-block-paragraph"><strong>Introduction:</strong></p> <p class="wp-block-paragraph">In the intricate tapestry of information systems, Domain APIs emerge as critical enablers of seamless read, command, and event processes. As we continue our exploration of digital transformation in different industry sectors (with insurance domain as our common example), it’s imperative to address the complexities that arise when multiple systems—old and new—coexist,…More

Beyond Read Stores: Handling Commands and Events in Mature Domain APIs

<p class="wp-block-paragraph"><strong>Introduction:</strong></p> <p class="wp-block-paragraph">Domain APIs play a critical role in integration, offering a single point of aggregation for a common view of queries, commands, and events. Domain API implementations can often be poor especially when they are pass-through with no domain logic or just providing pure “read stores”. In this post we talk about how…More

Navigating the Digital Shift: A Playbook for Insurance System Transformation

<h2 class="wp-block-heading">Introduction</h2> <p class="wp-block-paragraph">As the digital age reshapes industries, the <strong>insurance</strong> sector stands at the forefront of a significant transformation. Leading this charge, I am steering a digital transformation program designed to blend the rich heritage of traditional insurance systems with the efficiency and innovation of modern cloud-based technologies. This is a journey of integration…More

The Power of Adapters in Service Architecture:

<p class="wp-block-paragraph">When building a service architecture, understanding the significance of each component is paramount. Among these components, the <strong>Adapter</strong> stands out as an element that often prompts contemplation and inquiry. Questions arise: “Is this additional layer truly necessary?” “Does it introduce undue complexity?” “How does it fit within the overarching structure?” Drawing from extensive experience…More