HotspotsWed, Oct 26, 2016
As Nick and the Team continue, they discover that within the two Bounded Contexts that have emerged through the exercise - there are various concepts of Inventory. A purple stickie goes up: “What are the different kinds of ‘Inventory’ we are dealing with?”
- Physical Green Bean Inventory that Nick is concerned with keeping enough supply through ordering more green beans from his suppliers.
- Allocated/Unallocated Green Bean Inventory that Nick is concerned with for use in his Roast Planning.
- Available Roasted Coffee on a given Roast Day that the Customer is allowed to add to their Cart, either buying the Coffee or after 5 minutes the Coffee goes back to the Available Roasted Coffee for the Roast Day.
Another form of separation starts to show itself between the first two “Inventories” listed above. There is Physical Green Bean Inventory that Nick receives through Shipping and sits in storage, and there’s the Allocated Roast Schedule Inventory which is reduced as Customers buy Coffee and he roasts it for them.
The Team, again, starts to see separate Bounded Contexts emerge within the Domain. There’s the concept of Physical Inventory Management - Nick’s Physical Green Bean Inventory that fluctuates as he orders and receives Green Beans into storage. Then there’s Nick’s Roast Planning Inventory - The Green Bean Inventory that Nick can Allocate to his Roast Schedule safely, without scheduling and selling more Green Beans than he can roast.
As they discuss this separation, Nick and the Team agree that there is a separation between what Nick has in storage and what he can allocate and roast. He may allocate Green Beans to his future Roast Schedule, reducing his Unallocated Physical Green Bean Inventory, but his Physical Inventory stays the same.
These new terms in the Ubiquitous Language can be incorporated in the EventStorming session:
- Physical Green Bean Inventory: Green bean inventory that Nick orders from green bean suppliers in bulk and stores. He needs to manage what he has in stock in order to make sure he has enough to allocate to his Roast Schedule
- Allocated Roast Schedule Inventory: Green beans that Nick plans to roast according to his Roast Schedule. It is the amount of green beans that he plans to roast as he plans his future roast schedule. It influences (but is not part of the same Bounded Context as) the amount of Coffee that a Customer can buy.
In addition to these concepts of Inventory in the new Bounded Contexts (Physical Inventory Management and Roast Planning) that are emerging, Nick and Team can also address the concept of Available Coffee for Sale in the Customer Bounded Context that emerged above. They start calling it the Customer Bounded Context, however there is a likelihood that it will be further broken down into finer-grained Bounded Contexts as they move forward.
More Events go up on the surface, more Hotspots, and here’s where we are:
I will be releasing most of this content only to subscribers. Make sure you sign up by clicking the big red button!
- Domain Discoveries
- Big Picture EventStorming
- The Domain - First Pop Coffee Company
- More Efficient Domain Modeling with EventStorming
- Where do you find resources for learning DDD, CQRS, Event Sourcing, and EventStorming?
- Has the code devolved into a big ball of mud?… What can you do about it?
- A Better Way to Project Domain Entities into DTOs
- Exposing IQueryable in a CQRS Query Stack
- A Pattern to Decouple your Aggregates from their Clients
- Erlang-style Supervisors in C# with Akka.NET and the Actor Model