Blog
Composable Domain Aligned Platforms - Underlying Structures

Overview

In the introductory blog post, we took a look at how BFSI enterprises could approach their technical and organisational structures with a domain focus. One of the topics we touched upon was around Domains & DDD, Structures, and how enterprise scale companies would be better served by a Product mindset. In this post we will delve deeper into this topic, and deconstruct the components and entities that comprise the organisation. For the rest of this post, we’ll be using the example of a bank. However, the concepts we cover could apply to any organisation that serves its users across a range of domains and subdomains.

Deconstructing the underlying structures

The diagrams below are simplified and serve to illustrate the concepts I’m talking about. They are not meant to be an exhaustive breakdown of the real-world systems and processes involved.

Channels

Now, let us think of a bank. A typical bank normally serves its customers through physical or digital means.

Online and Digital: They could serve customers online through their mobile and web apps. They could also serve partners and third party fintech applications etc online through their APIs. They could have different digital interfaces that cater to retail customers, SMBs, and Enterprise customers. They could have layers of B2B interfaces that abstract from the end users.

Physical: They could serve customers through the bank’s branches, through ATMs, through the bank or 3rd party agents who work directly with customers, etc. Each of these physical interfaces could have a host of applications that allow them to connect to the bank’s systems.

We collectively refer to these interfaces as Channels.

Examples of Channels for a Bank

For the sake of simplicity, for the rest of this post, let us focus on Digital Banking, and view the sections below from that point of view.

User Facing Products and Journeys

Banks normally serve a host of products to their customers. These include core banking products: Different types of Accounts, Loans, Transactions, Payments & Transfers etc. Most medium and large banks also provide products like Credit Cards, Deposits, Investment Banking, Wealth Management etc.

All of these products comprise of different customer journeys (opening an account, making a transfer, setting credit limits, registering a payee, withdrawing cash etc). Different combinations of customer categories and products will have their own sets of user journeys. And they could be serving the customers or end users via various channels. The diagram below is a simplified illustration of what some user journeys might look like, and the user steps involved.

Some User-facing Products, with example User Journeys within them

Journey Workflows

For each step of these user journeys, there could be a whole series of workflows that happen in the bank, which are completely abstracted away from the users. These are a sequence of steps the bank needs to do in order to fulfil the customer journey requirements.

A simplified example of a Workflow that serves a given User Journey

Subdomains & Capabilities

From the overall domain of banking, we can break it down to a set of sub-domains, based on  certain categorisation criteria. One good way to map out sub-domains is along the lines of the set of capabilities they serve either to customers or to other systems within the bank.

The user facing products mentioned above could fall into a series of subdomains, for example:

  • Accounts
  • Loans and Finance
  • Credit Cards
  • Payments and Transfers
  • Customer Management

All of the above could be thought of as Primary Subdomains. These have capabilities that are served directly in User Products and Journeys.

You could also have subdomains that handle shared needs across products, and serve capabilities that are consumed by the Primary Subdomain services in order to fulfil their user journeys and bank workflows, for example:

  • Digital Identity
  • Customer Engagement
  • Fraud and Risk Mitigation
  • Security
In Domain Driven Design (DDD) for Software Development, we have the concept of “Bounded Contexts”. We will dive into DDD in more detail in the next post. But for this post, those of you who’ve read up on DDD could see some of these subdomains mapping neatly to Bounded Contexts
Examples of Subdomains, with example capabilities within each of them

In the image above we have some examples of how the subdomains could be broken down, and the ovals inside the subdomain represent the capabilities served in that subdomain.

Horizontal and Vertical : Mapping Journeys and Workstreams to Subdomains and Capabilities

If we consider the customer facing products and their inherent user journeys and workflows as a “Horizontal” sequence of events.

Each step in that horizontal sequence is fulfilled by “Vertical” blocks: the subdomains serving various capabilities. The primary subdomains directly serve capabilities to the journey, while the supporting subdomains provide capabilities to the primary subdomains.

Simplified mapping of Journeys & Workstreams to Subdomain layers

The above is a simplified diagram showing some of the relationships between the subdomains and the workstreams. So we can think of the services that make up each of the subdomains above as a “Platform” serving the capabilities of that subdomain. So we effectively have horizontal journeys & workstreams on top, and layers of vertical stacks of domain aligned platforms serving capabilities to the horizontal journeys.

What’s next?

All of these examples above are simplified to illustrate the high level concepts of breaking down the underlying structures in an example bank. We didn’t delve into the details of mapping workflow steps to capabilities at a granular level etc. In the next post, we’ll dive deeper into the topic of Domain Driven Design (DDD), and explore creating an actual domain model, and DDD concepts and terminologies like Bounded Context, Domain Events, Entities, Services, Aggregates, Factories, Value Objects, Repositories etc. We will also look at techniques like Event Storming in order to break down and create the domain model for any domain. With that, it’ll allow us to make a fine grained mapping of Journeys, Workflows, Subdomains, and Capabilities.

Composable Domain Aligned Platforms - Underlying Structures
Oct 17, 2024

Overview

In the introductory blog post, we took a look at how BFSI enterprises could approach their technical and organisational structures with a domain focus. One of the topics we touched upon was around Domains & DDD, Structures, and how enterprise scale companies would be better served by a Product mindset. In this post we will delve deeper into this topic, and deconstruct the components and entities that comprise the organisation. For the rest of this post, we’ll be using the example of a bank. However, the concepts we cover could apply to any organisation that serves its users across a range of domains and subdomains.

Deconstructing the underlying structures

The diagrams below are simplified and serve to illustrate the concepts I’m talking about. They are not meant to be an exhaustive breakdown of the real-world systems and processes involved.

Channels

Now, let us think of a bank. A typical bank normally serves its customers through physical or digital means.

Online and Digital: They could serve customers online through their mobile and web apps. They could also serve partners and third party fintech applications etc online through their APIs. They could have different digital interfaces that cater to retail customers, SMBs, and Enterprise customers. They could have layers of B2B interfaces that abstract from the end users.

Physical: They could serve customers through the bank’s branches, through ATMs, through the bank or 3rd party agents who work directly with customers, etc. Each of these physical interfaces could have a host of applications that allow them to connect to the bank’s systems.

We collectively refer to these interfaces as Channels.

Examples of Channels for a Bank

For the sake of simplicity, for the rest of this post, let us focus on Digital Banking, and view the sections below from that point of view.

User Facing Products and Journeys

Banks normally serve a host of products to their customers. These include core banking products: Different types of Accounts, Loans, Transactions, Payments & Transfers etc. Most medium and large banks also provide products like Credit Cards, Deposits, Investment Banking, Wealth Management etc.

All of these products comprise of different customer journeys (opening an account, making a transfer, setting credit limits, registering a payee, withdrawing cash etc). Different combinations of customer categories and products will have their own sets of user journeys. And they could be serving the customers or end users via various channels. The diagram below is a simplified illustration of what some user journeys might look like, and the user steps involved.

Some User-facing Products, with example User Journeys within them

Journey Workflows

For each step of these user journeys, there could be a whole series of workflows that happen in the bank, which are completely abstracted away from the users. These are a sequence of steps the bank needs to do in order to fulfil the customer journey requirements.

A simplified example of a Workflow that serves a given User Journey

Subdomains & Capabilities

From the overall domain of banking, we can break it down to a set of sub-domains, based on  certain categorisation criteria. One good way to map out sub-domains is along the lines of the set of capabilities they serve either to customers or to other systems within the bank.

The user facing products mentioned above could fall into a series of subdomains, for example:

  • Accounts
  • Loans and Finance
  • Credit Cards
  • Payments and Transfers
  • Customer Management

All of the above could be thought of as Primary Subdomains. These have capabilities that are served directly in User Products and Journeys.

You could also have subdomains that handle shared needs across products, and serve capabilities that are consumed by the Primary Subdomain services in order to fulfil their user journeys and bank workflows, for example:

  • Digital Identity
  • Customer Engagement
  • Fraud and Risk Mitigation
  • Security
In Domain Driven Design (DDD) for Software Development, we have the concept of “Bounded Contexts”. We will dive into DDD in more detail in the next post. But for this post, those of you who’ve read up on DDD could see some of these subdomains mapping neatly to Bounded Contexts
Examples of Subdomains, with example capabilities within each of them

In the image above we have some examples of how the subdomains could be broken down, and the ovals inside the subdomain represent the capabilities served in that subdomain.

Horizontal and Vertical : Mapping Journeys and Workstreams to Subdomains and Capabilities

If we consider the customer facing products and their inherent user journeys and workflows as a “Horizontal” sequence of events.

Each step in that horizontal sequence is fulfilled by “Vertical” blocks: the subdomains serving various capabilities. The primary subdomains directly serve capabilities to the journey, while the supporting subdomains provide capabilities to the primary subdomains.

Simplified mapping of Journeys & Workstreams to Subdomain layers

The above is a simplified diagram showing some of the relationships between the subdomains and the workstreams. So we can think of the services that make up each of the subdomains above as a “Platform” serving the capabilities of that subdomain. So we effectively have horizontal journeys & workstreams on top, and layers of vertical stacks of domain aligned platforms serving capabilities to the horizontal journeys.

What’s next?

All of these examples above are simplified to illustrate the high level concepts of breaking down the underlying structures in an example bank. We didn’t delve into the details of mapping workflow steps to capabilities at a granular level etc. In the next post, we’ll dive deeper into the topic of Domain Driven Design (DDD), and explore creating an actual domain model, and DDD concepts and terminologies like Bounded Context, Domain Events, Entities, Services, Aggregates, Factories, Value Objects, Repositories etc. We will also look at techniques like Event Storming in order to break down and create the domain model for any domain. With that, it’ll allow us to make a fine grained mapping of Journeys, Workflows, Subdomains, and Capabilities.

Subscribe To Our Newsletter

Do get in touch with us to understand more about how we can help your organization in building meaningful and in-demand products
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Blog

Composable Domain Aligned Platforms - Underlying Structures

Written by:  

AP

October 17, 2024

15 min read

Composable Domain Aligned Platforms - Underlying Structures

Overview

In the introductory blog post, we took a look at how BFSI enterprises could approach their technical and organisational structures with a domain focus. One of the topics we touched upon was around Domains & DDD, Structures, and how enterprise scale companies would be better served by a Product mindset. In this post we will delve deeper into this topic, and deconstruct the components and entities that comprise the organisation. For the rest of this post, we’ll be using the example of a bank. However, the concepts we cover could apply to any organisation that serves its users across a range of domains and subdomains.

Deconstructing the underlying structures

The diagrams below are simplified and serve to illustrate the concepts I’m talking about. They are not meant to be an exhaustive breakdown of the real-world systems and processes involved.

Channels

Now, let us think of a bank. A typical bank normally serves its customers through physical or digital means.

Online and Digital: They could serve customers online through their mobile and web apps. They could also serve partners and third party fintech applications etc online through their APIs. They could have different digital interfaces that cater to retail customers, SMBs, and Enterprise customers. They could have layers of B2B interfaces that abstract from the end users.

Physical: They could serve customers through the bank’s branches, through ATMs, through the bank or 3rd party agents who work directly with customers, etc. Each of these physical interfaces could have a host of applications that allow them to connect to the bank’s systems.

We collectively refer to these interfaces as Channels.

Examples of Channels for a Bank

For the sake of simplicity, for the rest of this post, let us focus on Digital Banking, and view the sections below from that point of view.

User Facing Products and Journeys

Banks normally serve a host of products to their customers. These include core banking products: Different types of Accounts, Loans, Transactions, Payments & Transfers etc. Most medium and large banks also provide products like Credit Cards, Deposits, Investment Banking, Wealth Management etc.

All of these products comprise of different customer journeys (opening an account, making a transfer, setting credit limits, registering a payee, withdrawing cash etc). Different combinations of customer categories and products will have their own sets of user journeys. And they could be serving the customers or end users via various channels. The diagram below is a simplified illustration of what some user journeys might look like, and the user steps involved.

Some User-facing Products, with example User Journeys within them

Journey Workflows

For each step of these user journeys, there could be a whole series of workflows that happen in the bank, which are completely abstracted away from the users. These are a sequence of steps the bank needs to do in order to fulfil the customer journey requirements.

A simplified example of a Workflow that serves a given User Journey

Subdomains & Capabilities

From the overall domain of banking, we can break it down to a set of sub-domains, based on  certain categorisation criteria. One good way to map out sub-domains is along the lines of the set of capabilities they serve either to customers or to other systems within the bank.

The user facing products mentioned above could fall into a series of subdomains, for example:

  • Accounts
  • Loans and Finance
  • Credit Cards
  • Payments and Transfers
  • Customer Management

All of the above could be thought of as Primary Subdomains. These have capabilities that are served directly in User Products and Journeys.

You could also have subdomains that handle shared needs across products, and serve capabilities that are consumed by the Primary Subdomain services in order to fulfil their user journeys and bank workflows, for example:

  • Digital Identity
  • Customer Engagement
  • Fraud and Risk Mitigation
  • Security
In Domain Driven Design (DDD) for Software Development, we have the concept of “Bounded Contexts”. We will dive into DDD in more detail in the next post. But for this post, those of you who’ve read up on DDD could see some of these subdomains mapping neatly to Bounded Contexts
Examples of Subdomains, with example capabilities within each of them

In the image above we have some examples of how the subdomains could be broken down, and the ovals inside the subdomain represent the capabilities served in that subdomain.

Horizontal and Vertical : Mapping Journeys and Workstreams to Subdomains and Capabilities

If we consider the customer facing products and their inherent user journeys and workflows as a “Horizontal” sequence of events.

Each step in that horizontal sequence is fulfilled by “Vertical” blocks: the subdomains serving various capabilities. The primary subdomains directly serve capabilities to the journey, while the supporting subdomains provide capabilities to the primary subdomains.

Simplified mapping of Journeys & Workstreams to Subdomain layers

The above is a simplified diagram showing some of the relationships between the subdomains and the workstreams. So we can think of the services that make up each of the subdomains above as a “Platform” serving the capabilities of that subdomain. So we effectively have horizontal journeys & workstreams on top, and layers of vertical stacks of domain aligned platforms serving capabilities to the horizontal journeys.

What’s next?

All of these examples above are simplified to illustrate the high level concepts of breaking down the underlying structures in an example bank. We didn’t delve into the details of mapping workflow steps to capabilities at a granular level etc. In the next post, we’ll dive deeper into the topic of Domain Driven Design (DDD), and explore creating an actual domain model, and DDD concepts and terminologies like Bounded Context, Domain Events, Entities, Services, Aggregates, Factories, Value Objects, Repositories etc. We will also look at techniques like Event Storming in order to break down and create the domain model for any domain. With that, it’ll allow us to make a fine grained mapping of Journeys, Workflows, Subdomains, and Capabilities.

About Greyamp

Greyamp is a boutique Management Consulting firm that works with large enterprises to help them on their Digital Transformation journeys, going across the organisation, covering process, people, culture, and technology. Subscribe here to get our latest digital transformation insights.