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

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

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

OData vs. REST: The Integration Dance with DataHub

<p class="wp-block-paragraph">In our earlier post, we delved deep into how data hubs, especially when organized by business domains, are revolutionizing the way we handle data. We also touched upon the challenges faced when integrating with a data hub and how consumers ingest this data. If you missed it, give it a read <a href="https://alok-mishra.com/2023/01/10/data-platforms-need-integration/">here</a&gt;. Today,…More

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

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

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

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

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

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

10 steps to DevSecOps: Engineering your software better

<p class="wp-block-paragraph">My top-10 things to do when starting out on a project to improve code quality and security through DevSecOps</p> <p class="wp-block-paragraph">About 7 years ago I was frustrated with the industry practices where it took us 6 months to provision environments, projects were delayed due to environment issues, manual deployments (UI based code uploads), long…More

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

Technology Service Modernization (Part I): 3 Approaches to Modernization

<p class="wp-block-paragraph">Welcome to 2022. While I was in a blogging hiatus, my time was spent closing out conversations with business and technology leaders looking to <strong>modernize</strong> their technology solutions as they were looking to adapt them new market needs and challenges. I thought Web3.0 was the big buzz word but it looks like Modernization is…More

On Measuring Software Design

<p class="wp-block-paragraph">Good design leads to good engineering quality and products that are useful, fun to use, simple, efficient and safe. But what is a good design? Is it purely subjective and opinionated or are there specific attributes of a design that lend themselves to introspection and measurement?</p> <h3 class="wp-block-heading">Why measure?</h3> <p class="wp-block-paragraph">Measuring helps us <strong>quantify</strong>…More

Sustainability as a key Software Architecture Choice

<p class="wp-block-paragraph">As an architect my day-to-day involves helping my clients solve wicked problems while delighting their customers and staying profitable and sustainable as a business. I do this by obsessively reasoning about <strong>software architecture and design</strong> choices. As an architect circa 2021 growing climate crisis has me concerned especially as the software industry and the…More

The Domain Stories Series: Search Story

<p class="wp-block-paragraph">A common story we often hear is related to <em><strong>searching</strong></em> for information. This is a powerful capability to provide through your technology services as the user is keen to interact with your offering and the richer and performant it is, the more value the consumer draws from this. Google it!</p> <p class="wp-block-paragraph">When analysing the…More

Domain Model != Data Model

<p class="wp-block-paragraph">One of the smells when practicing DDD (Domain Driven Design) is when you are presented with a Data Model (extracted from an existing set of tables or constructed through rigorous but confirmed hypotheses) and asked to consider this as your Domain Model</p> <p class="has-text-align-center wp-block-paragraph">Domain Model is not the same as a Data Model</p>…More

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

DDD Anti-patterns: 5 things we get wrong with Domain Driven Design in practice

<p class="wp-block-paragraph">As a software architect I have been using various design techniques including Domain Driven Design (DDD) which has been incredibly useful for building APIs and Microservices and for strategic architecture consulting engagements requiring discovery/mapping of socio-technical organisation structure and in documenting an API strategy </p> <p class="wp-block-paragraph">I have also been training architects across organisations…More

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

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

Iterative Domain Model Design: How to stay autonomous

<p class="wp-block-paragraph">One key question that I hear with Domain Modelling is <em>how do you know if you have your transaction boundary right</em> (so that you build the right aggregate)?  </p> <p class="wp-block-paragraph">Hidden in this is another question –<strong> <em>what if we got our domain aggregate wrong?</em></strong><em> </em>We can take this further and ask <em>In an agile…More

Ubiquitous Internet of Things: How ESP32s are changing the game

<p class="wp-block-paragraph">I have been tinkering with IoT devices for over 10 years now, starting with micro controllers with ethernet ports (later bulky wifi-shields) that were cumbersome to scale out and put onto things. For a true internet of things, we needed low-cost, connectivity enabled, sensor packed devices we would attach to things easily and then…More

Domain Driven Design (DDD): Core concepts and Enterprise Architecture

<p class="wp-block-paragraph">If you are building or designing APIs, Microservices or integrating systems then Domain Driven Design (DDD) offers a valuable design technique for mapping business domains to build software services of value </p> <p class="wp-block-paragraph">Using DDD is incredibly useful when designing services because it helps you rationalise the granularity of your software, the ownership boundaries…More

Single view of Customer from Distributed Software: Part II

<p class="wp-block-paragraph">In the <a href="https://alok-mishra.com/2021/06/26/single-view-of-customer-from-distributed-software-design-options/&quot; target="_blank" rel="noreferrer noopener">previous post</a> we discussed how to identify some of the challenges around a single view of the customer. In this post we look at some of the ways we manage customer contacts in the enterprise systems and relate them to Domain Driven Design context mapping</p> <h2 class="wp-block-heading">Patterns</h2> <h3…More

DDD Context Mapping By Example: Customer Management and Customer 360

<p class="wp-block-paragraph">In the continuation from the previous post, here we look at how to do context mapping from sample real-world examples. In this post we look at how to model Customer Management from a customer support perspective and how Customer 360 would look like as a context map</p> <p class="wp-block-paragraph">With this post, I hope to…More

DDD Context Mapping by example: Policy Management

<p class="wp-block-paragraph">DDD context mapping can be confusing without real-world examples. In this post we will model sample implementations for two scenarios using bounded context maps and learn to analyse the relationships from the maps. With this post, I hope to give you a fair idea of how to do apply DDD into build good distributed…More

Single view of Customer from Distributed Software: Part I

<p class="wp-block-paragraph">Customers are at the heart of every business model and industry. It is therefore no surprise that throughout my journey as a consultant I have witnessed initiatives eventually lead to one trying to get a single, unified view of the customers at they appear in various IT systems </p> <p class="wp-block-paragraph">The challenge is when…More

Strategic DDD and Context Mapping for Architects

<p class="wp-block-paragraph">Conway’s law says the structure of our organisation guides how we build software and this holds specially true today as we build distributed software services rapidly and at scale. </p> <p class="wp-block-paragraph">So how do we map business domains, technology services, engineering teams, communication patterns, dependencies as enterprise architects and integration domain architects? </p> <h2…More

User Journey, User Story vs Domain Story: What’s the difference?

<p class="wp-block-paragraph">While running DDD workshops with clients, I have had this question come up several times – “What is the difference between a Domain story vs a User Story?” </p> <p class="wp-block-paragraph">Here is a quick look at differences:</p> <ul class="wp-block-list"> <li><strong>User journey story:</strong> Is a technique for describing how the <strong>user interacts </strong>with our business…More