bfstore · Application

Business & Domain

The business context, domain concepts, rules, requirements and customer journeys that shape the bfstore application before technical architecture is introduced.

Last updated:

Why Start With The Business?

Borough Furniture Store is useful as an engineering project because it begins with a business that has goals, customers, responsibilities and rules. The application should be shaped by those needs rather than by a list of technologies that happen to be interesting to deploy.

This collection therefore establishes the business meaning that the rest of the application must preserve. It explains what the retailer needs to be capable of doing, which concepts matter, what must always remain true and how customers move through the business before those ideas are translated into service boundaries, contracts, data models and workflows.

The Role Of This Collection

Business & Domain provides the vocabulary and constraints used by later design work. A service dossier should be able to point back to the capability it owns, a workflow should be able to point back to the customer journey it implements, and a test should be able to point back to the rule or requirement it proves.

Scope Boundary

The boundary is deliberately simple: this section explains what the business means and requires. Application Architecture begins when bfstore decides how the software should satisfy those requirements.

Business & Domain At A Glance

The section is organised as a progression from context to behaviour. Readers can start with the fictional retailer, move through its concepts and invariants, then follow those rules into requirements and customer journeys that later shape the application design.

Explore Business & Domain

Four topic areas divide the collection by the question a reader is trying to answer. Each topic has its own index page and then a small number of focused standalone documents beneath it.

From Business Intent To Application Design

The domain material is not an isolated requirements exercise. Its purpose is to give later architecture decisions something concrete to satisfy. A capability gives the system a reason to exist; rules constrain correct behaviour; requirements make that behaviour testable; customer journeys combine it into outcomes that the application must deliver.

From Business Intent To Application Design

Diagram showing Borough Furniture Store business context flowing through business capabilities, domain concepts, rules and invariants, requirements and customer journeys before crossing an architecture boundary into service boundaries, contracts, data ownership, events and workflows.
Business & Domain defines the problem space. Application Architecture begins when bfstore turns those concepts, rules and journeys into technical ownership boundaries, contracts, data and workflows.

Problem Space Before Solution Space

A business capability is not automatically a service. A domain concept is not automatically a database table. A customer journey is not automatically a chain of RPC calls. Those mappings are architectural choices and should remain open until the business responsibilities are understood clearly enough to make them.

What Changes At The Architecture Boundary

The hand-off occurs when bfstore begins assigning technical ownership. Domain responsibilities inform service candidates; requirements become contracts and acceptance criteria; business lifecycles influence state models; journeys become cross-service workflows. Those decisions belong in Application Architecture and should link back to the business material that justified them.

How The First Slice Maps Back To The Business

Catalog and Basket give the domain documentation a real implementation boundary to test against. The first vertical slice is useful because it already connects a customer-facing need to business concepts, ownership and executable behaviour.

First-slice traceability: Browse To Basket
Business Intent Domain Meaning Current Implementation Evidence
Customers can discover products they may want to buy. Products, variants, categories and sellability are part of the product-discovery domain. Catalog service owns the current product read model and product/variant validation behaviour.
Customers can maintain an intended purchase before checkout. A Basket owns mutable pre-checkout state containing one or more Basket Items. Basket service owns basket lifecycle and item operations with its own persistence boundary.
A basket should not accept a product selection that cannot be sold. Basket behaviour depends on a product/variant being valid and sellable without taking ownership of product truth. Basket validates the selection through Catalog before persisting it, preserving the responsibility boundary between the two domains.
The first customer journey should be repeatable and verifiable. Product discovery and basket management form one business journey rather than two unrelated features. Browse To Basket smoke flow exercises the implemented cross-service journey locally.

Traceability Is Two-Way

Implementation is evidence, not merely an endpoint. If building Basket reveals that a domain concept is poorly named, a business rule is incomplete or ownership is ambiguous, the domain documentation should be corrected. The website and repository should converge on the same model as bfstore matures.

Keeping The Boundary Clean

The easiest way for this collection to become muddy is to mix business meaning with implementation detail. The table below sets the editorial boundary we will use throughout the Business & Domain pages.

What belongs in Business & Domain?
Concern Business & Domain Position Where Technical Detail Belongs
Business capability Define what Borough Furniture Store needs to be capable of doing. Application Architecture decides whether and how that capability becomes one or more technical boundaries.
Business rule State the invariant in implementation-neutral language. Services and workflows describe where and how the rule is enforced.
Customer journey Describe the outcome and business steps from the customer perspective. Application Workflows describe RPCs, events, state changes, failure paths and compensation.
Domain concept Define its business meaning, relationships and lifecycle. Data & Persistence describes schemas, storage models, migrations and projections.
Quality expectation Record the required property and why the business needs it. Architecture, Operations and Cloud document the mechanisms, targets and operational controls used to satisfy it.
  • Use Business Language FirstName concepts for what they mean to Borough Furniture Store before naming the technology that implements them.
  • Keep Capabilities Separate From ServicesA capability may influence a service boundary, but it does not automatically justify one.
  • Make Rules TestableImportant business invariants should be precise enough to become requirements, acceptance criteria and tests.
  • Let Evidence Refine The ModelImplementation may expose missing concepts or poor boundaries; the domain model should evolve when the evidence is better.

Repository And Evidence

The public documentation describes the intended business model. The bfstore repository provides implementation evidence and may temporarily contain older v1 terminology or draft assumptions that will be reconciled as this section is completed.

From Business Meaning To Evidence

The goal is not to produce a requirements archive that becomes detached from the code. Each important business concept should eventually have a visible path into the design and evidence that implement it.

Capability Business Rule Requirement Customer Journey Architecture / ADR Implementation Test / Evidence
Open The bfstore Repository → Browse Architecture Decisions → Explore Project Evidence →

Continue Exploring

The Business & Domain index is the map. The next level separates business context, the domain model, rules and requirements, and customer journeys so that each can become detailed without mixing business meaning with implementation design.

← Back To Application Next: Business Context →