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:
| Product | Responsibility | Does NOT Do |
|---|---|---|
| PSSaaS | Internal operations — pipeline, pooling, trading, hedging | External marketplace execution |
| PowerSeller X | External marketplace — anonymous mortgage exchange | Internal pipeline management |
| MBS Access | Data subscriptions — MBS market data delivery | Loan-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