Skip to content

Products and commercial configuration

Module id: products

The commercial definition: catalogue, versions, and the price or eligibility another module will point at.

Agreements, distribution, and lending store the product id. They do not keep a private copy of the definition.

Products, read top to bottom: no separate channel, then catalogue and price, then the product record
Read top to bottom. There is no products channel. Domain services answer catalogue, price, and eligibility. The core stores the product record.

There is no exp-products repository. Partner-facing catalogue views are distribution. Lending simulations that a channel starts often go through exp-lending.

What it owns

  • Products, versions, categories, and relationships
  • Configuration, localisation, and documentation requirements
  • Fees, pricing, and eligibility
  • Pricing simulations against a product

What it does not own

  • Which products a partner may sell. That is distribution.
  • The contract that binds a party to a product. That is agreements.
  • Loan agreements for a product line. Those are lending.
  • An external rating engine. That stays behind an adapter.

Repositories

Repository Layer What it holds OpenAPI
domain-product-catalog Domain Product catalogue openapi.yml
domain-product-pricing Domain Fees, pricing, and eligibility openapi.yml
domain-core-pricing-engine Domain Product pricing queries and simulations openapi.yml
core-common-product-mgmt Core Product, version, category, documentation, configuration openapi.yml
core-common-pricing-mgmt Core Pricing persistence No published OpenAPI yet

How the pieces fit

domain-product-catalog answers /api/v1/products. That is the catalogue query other services call.

domain-product-pricing answers pricing, fees, and eligibility. domain-core-pricing-engine answers simulations and product pricing queries under /api/v1/pricing-engine. A simulation is a query. It does not replace the product record.

core-common-product-mgmt persists products, versions, categories, configuration, localisation, documentation, and documentation requirements. core-common-pricing-mgmt is on disk and has no checked-in OpenAPI. Do not invent a contract for it.

Lending and agreements store the product id on offers and contracts. They read the definition from here.