bfstore · Business & Domain

Domain Model

The conceptual model that turns Borough Furniture Store capabilities into named business responsibilities, concepts, relationships, lifecycles and shared vocabulary.

Last updated:

Why The Domain Model Matters

Business Context establishes the retailer, its participants and the outcomes it must be able to produce. The Domain Model turns that context into a coherent conceptual language for the application. It identifies the areas of responsibility within the business, the concepts each area reasons about and the relationships and state changes that make the commerce journey meaningful.

This model gives later architecture a stable problem space. Service boundaries can change as the implementation matures, but the meaning of a Product, Basket, Order, Payment or Shipment should not drift casually between code, requirements, diagrams and operational evidence.

Domain Area A coherent area of business responsibility with a distinct purpose, language and set of decisions.
Domain Concept A business idea the retailer must identify, describe, relate or move through a meaningful lifecycle.
Business Lifecycle The valid states and transitions through which an important domain concept changes over time.

The Role Of This Topic

The Domain Model is the bridge between business capabilities and application architecture. It provides the responsibility and language model that later pages use to design service ownership, data boundaries, contracts, events, workflows, validation and tests.

Domain Model At A Glance

Explore The Domain Model

The Domain Model is divided into four focused pages. Each page answers a different modelling question without forcing conceptual, lifecycle and vocabulary concerns into one giant scroll-creature.

The High-Level Domain Map

The map below shows the current conceptual landscape. It groups related business responsibilities and highlights the concepts that connect them. The relationships are intentionally business-level. They are not RPC arrows, event topics, foreign keys or deployment dependencies.

Borough Furniture Store High-Level Domain Map

A high-level domain map with Customer Experience at the top, Commerce in the centre, Fulfilment and Communication below, and Insight and Relevance to the side. The map includes Product, Variant, Basket, Basket Item, Inventory, Reservation, Checkout, Payment, Order, Order Item, Shipment, Notification, Search Projection, Review and Recommendation. Catalog and Basket areas are highlighted as implemented, while the remaining areas are planned.
The domain map groups business responsibilities around the customer purchase journey. Catalog and Basket are grounded in the first working slice; Checkout, Inventory, Payment, Order, Fulfilment and supporting areas remain target domain responsibilities.

What The Domain Model Establishes

What Each Domain Model View Establishes
Model View Primary Question Produces Used Later By
Domain Areas & Responsibilities Which business decisions and concepts belong together? Responsibility map, ownership questions and boundary candidates. Service Boundaries & Ownership, Data Ownership And Team Responsibilities.
Domain Concepts & Relationships What business ideas must bfstore understand and how are they related? Concept catalogue and conceptual relationship model. Contracts, Data & Persistence, Service Dossiers And Tests.
Business Lifecycles How do important concepts change over time? Valid states, transitions, terminal outcomes and invalid moves. Business Rules, APIs, Events, Workflows, Failure Handling And Tests.
Domain Vocabulary What does each important business term mean? Shared definitions, preferred terms and distinctions. Every Business, Architecture, Service, Operations And Evidence Page.

A Model Of Meaning And Responsibility

The Domain Model should make it possible to explain who owns a decision, what concepts participate in that decision and which rules must remain true. It should not simply redraw the repository directory tree with more elegant boxes.

From Capabilities To Responsibilities

Business capabilities describe the outcomes the retailer must produce. Domain responsibilities identify the coherent areas of business knowledge and decision making needed to produce those outcomes.

  1. Business Capability
  2. Business Decisions
  3. Domain Concepts
  4. Rules And Invariants
  5. Domain Responsibility
  6. Boundary Candidate
  7. Implementation Evidence
Examples Of Capability-To-Responsibility Translation
Business Capability Domain Decisions Important Concepts Responsibility Areas Involved
Product Discovery Which products and variants are visible and understandable to customers? Product, Variant, Category, Attribute And Availability View Catalog, Search And Recommendation
Basket Management Which valid selections belong in the customer's mutable pre-purchase state? Basket, Basket Item, Product Reference, Variant Reference And Quantity Basket With Product Validation From Catalog
Checkout Can the current selection become a committed purchase, and what outcomes are required? Checkout Attempt, Reservation, Payment Attempt And Order Checkout Coordination, Inventory, Payment And Order
Order Fulfilment What work is required to move an accepted purchase toward delivery? Order, Shipment, Delivery Reference And Notification Order, Shipping, Delivery Coordination And Notification

Modelling Boundaries

  • Business Meaning Before Technical Shape Define what a concept means and which decisions surround it before assigning it to a service, schema or event.
  • Ownership Without Premature Deployment A responsibility area can be distinct in the model even when the first implementation has not yet created a separate deployable service.
  • One Vocabulary Across Evidence Requirements, diagrams, protobuf contracts, logs, tests and operational evidence should use the same domain terms or document an intentional translation.
What Belongs In The Domain Model And What Belongs Elsewhere
Concern Domain Model Owns Documented Elsewhere
Responsibility Business decisions, concepts and rules that naturally belong together. Deployable service boundary, runtime ownership and scaling model.
Relationship Conceptual meaning between Product, Basket, Order, Payment and Shipment. RPCs, events, foreign keys, projections and network routes.
Lifecycle Valid business states and transitions. State persistence, concurrency control, retry mechanics and orchestration.
Vocabulary Provider-neutral business terms and definitions. Code package names, protobuf field names and provider-specific resources.

Current Model And Evidence

The target domain model is broader than the current implementation. Catalog and Basket provide the first grounded responsibility areas. The remaining areas are modelled so that upcoming vertical slices have an explicit business shape without being described as implemented prematurely.

Catalog

Owns the governed product view, including Products, Variants, Categories, Attributes, commercial states and the product information used by discovery.

Implemented V1 Local Slice

Basket

Owns mutable Basket state and Basket Items before purchase commitment, while validating referenced product and variant information with Catalog.

Implemented V1 Local Slice

Browse To Basket Collaboration

Provides the first evidence that separate responsibility areas can collaborate while preserving explicit ownership and validation.

Implemented And Smoke-Tested

Checkout And Purchase Commitment

Will deepen the model around Checkout Attempt, Reservation, Payment Attempt, Order and compensation when the next vertical slice is designed and built.

Planned

Fulfilment And Communication

Will define Shipment, Delivery Coordination and Notification responsibilities after the purchase-commitment model is stable.

Planned

Insight And Relevance

Search, Review and Recommendation concepts remain supporting responsibility areas that must not replace Catalog product truth.

Planned

Repository And Documentation Alignment

The bfstore repository contains implementation evidence, while this topic records the target conceptual model. Current evidence for the first slice lives primarily in services/catalog-service/ and services/basket-service/.

Later repository tidy-up should align service documentation, contracts, tests and architecture records with the vocabulary and responsibility model established here. Older README wording, stale service lists or early workflow ordering should be treated as repo deviations rather than silently redefining the target model.

Continue Exploring

The next page begins with responsibility rather than entities: which business decisions belong together, which concepts each area governs and where ownership questions must be resolved before technical service boundaries are chosen.

Business Capabilities Domain Areas & Responsibilities Business & Domain Index