Context is King: Finding Service Boundaries through Language
Tags: domaindrivendesign, microservices, soa
Published: 2019-08-06 17:29:31

---
title: Context is King: Finding Service Boundaries through Language
published: true
tags: Domain Driven Design, microservices, soa
canonical_url: https://codeopinion.com/context-is-king-finding-service-boundaries-through-language/
---

![](https://codeopinion.com/wp-content/uploads/2019/05/crown-1.png)

I’ve found that one of the most important ways to find service boundaries is through the dialog you have with various end users in different parts of the system we are working on. Really focusing in on the words they use can be instrumental in finding service boundaries.

This blog post is in a series. To catch up check out these other posts:

- [Context is King: Finding Service Boundaries](https://codeopinion.com/context-is-king-finding-service-boundaries/)
- [Language](https://codeopinion.com/context-is-king-finding-service-boundaries-through-language/)
- [Autonomous Services](https://codeopinion.com/autonomous-services/)
- [Focus on Service Capabilities, not Entities](https://codeopinion.com/focus-on-service-capabilities-not-entities/)
- [4+1 Architectural View Model](https://codeopinion.com/41-architectural-view-model/) 

## Taken out of Context

> If a **_statement_** or **_remark_** is quoted **out of context** , the circumstances in which it was said are not correctly reported, so that it seems to mean something **_different_** from the meaning that was **_intended_**.

If was talking with my son, and you overheard the statement:

> The **crane** was huge.

Which crane would you have thought of?

![](https://codeopinion.com/wp-content/uploads/2019/06/crane-1024x412.png)

There really is no way for you to know which type of crane I’m referring to without more context.

## A Product isn’t a Product

![](https://codeopinion.com/wp-content/uploads/2019/06/image.png)

As a more practical example, let’s use a distribution company.

The high level is the company purchases **products** from vendors, receives them into their warehouse, and then sales those products to customers.

When you talk about a **product** , it can mean different things to different people depending on their context.

If you talk about a product to a salesperson, when they use the word **price** they are referring to is the **sale price**. Sales are customer-centric.

When you then discuss a product to a person in purchasing, they will refer to the products **price** as the **vendor price** since purchasing is vendor-centric.

Talking about that exact same product to someone in accounting, they will refer to the **price** as the **sales price** , and **cost** as the **vendor price**.

## Context

![](https://codeopinion.com/wp-content/uploads/2019/06/image-1.png)

By understanding the context of the end users of the system you can determine when a word may mean different things to different people. If it does, then you may have found a boundary.

## Blog Series

More on all of these topics will be covered in greater length in other posts. If you have any questions or comments, please reach out to me in the comments section or on Twitter.

- [Context is King: Finding Service Boundaries](https://codeopinion.com/context-is-king-finding-service-boundaries/)
- [Language](https://codeopinion.com/context-is-king-finding-service-boundaries-through-language/)
- [Autonomous Services](https://codeopinion.com/autonomous-services/)
- [Focus on Service Capabilities, not Entities](https://codeopinion.com/focus-on-service-capabilities-not-entities/) 
- [4+1 Architectural View Model](https://codeopinion.com/41-architectural-view-model/) 

[Follow @codeopinion](https://twitter.com/codeopinion?ref_src=twsrc%5Etfw)

The post [Context is King: Finding Service Boundaries through Language](https://codeopinion.com/context-is-king-finding-service-boundaries-through-language/) appeared first on [CodeOpinion](https://codeopinion.com).