Skip to main content

ADR-011: Ecosystem Product Boundaries

Status: Accepted Date: 2026-03-16

Context

PowerSeller operates three technology products (SaaS App, PowerSeller X, MBS Access) that serve the mortgage secondary marketing industry. These products have overlapping domain concepts — loans, pricing, investors, MBS values — but serve different parts of the value chain. The team needed to define clear boundaries between products to prevent scope creep and ensure independent evolution.

Decision

Products are complementary, not competing. Each product owns a distinct part of the value chain:

ProductResponsibilityDoes NOT Do
PSSaaSInternal operations — pipeline, pooling, trading, hedgingExternal marketplace execution
PowerSeller XExternal marketplace — anonymous mortgage exchangeInternal pipeline management
MBS AccessData subscriptions — MBS market data deliveryLoan-level operations

Integration between products is via API contracts, not shared databases or shared code libraries.

Consequences

Positive:

  • Independent evolution: Each product can change its internal architecture without affecting others
  • Clear ownership: Each product has one team, one codebase, one deployment
  • API-first integration: Forces clean interface design between products
  • Technology independence: SaaS App (.NET) and PowerSeller X (Python) can use different stacks without friction

Negative:

  • Shared concept duplication: Loan schema, investor/buyer identity, LLPA calculations exist in multiple codebases
  • API contract maintenance: Shared concepts need formal API contracts and domain alignment documentation
  • No shared code libraries: Common business logic (e.g., MISMO field mappings) must be implemented independently in each stack
  • Coordination cost: Changes to shared concepts (e.g., adding a new loan field) require coordination across products