Skip to main content

Defining service landscape

Introduction

In this section, our team will define the service landscape based on all the previous completed steps. This section will result in an archi model for the service landscape which will focus on our CRM project.

Preconditions

  1. Event Storming
  2. Domain Discovery
  3. Domain Boundaries

Service Landscape

To be able to decide how to sketch the service landscape, we have gathered and reviewed the results of the event storming, domain discovery and the domain boundaries that have been identified. Within a short meeting, the team has discussed and gathered all the results to be able to visualize the service landscape archi model with all the relations between each aggregate.

Party Directory

Basically, a Party is any entity someone interacts with. So it covers the necessary information and relationships to be managed for this purpose, e.g., to be able to identify a Party doubtlessly. A Party can be distinguished into Person or Organisation.

For further specific purposes, certain 'party roles' have to be considered. As a result, different other services are going to integrate with the Party service.

Employee Directory

An Employee is a specific role of a Party. Therefore, the Employee services will integrate with the Party service. The Employee aggregate has a relationship to the Party, since amending it. The Employee itself manages only those information, not already covered by the Party, especially those necessary because of being an Employee, e.g. 'function', or 'employee since'.

Customer Directory

The Customer Directory integrates with Party and Employee Services. The Customer Service contains two aggregates, the Customer and the Contact. The Customer and Contact are specific roles of a Party.

The Customer is a role of a Party, which is defined that the Party is being "an organisation or person that receives a product". Again, the customer itself gathers only the information which is needed in this context and not already managed within the Party.

The Contact is again a role of a Party and provides access to a Customer. A Customer can have multiple Contacts assigned, e.g. the CEO or an employee of the Customer. As it is for the Contacts, there may be multiple Responsibles (a special role of an Employee) dealing with the Customer. A Contact acts as link between the company and the Customer.

Minutes service

The Minutes service integrates with Employee and Customer Service. As (meeting) minutes regularly will need meeting participants, the Minutes aggregate has relationships to Contact or Employee as meeting participants.

Archi Model

After discussing the relations between all the aggregates, Alexander designed the archi model for our CRM project as follows visualizing the discussion outcome.

ℹ️note

In our sketch we only covered the top-level aggregates and not the levels below, e.g. Person or Organisation.

Service Landscape Archi model
❗️info

You can know more about the coupling criteria from here.