Opportunity Aggregates¶
Why This Exists¶
This document defines aggregate boundaries for the Opportunity Domain using Domain-Driven Design.
Owner¶
The owner is the Chief Product Officer and Enterprise Architect.
Business Value¶
Aggregate boundaries keep tender facts, indexing, matching, recommendations, watchlists, saved opportunities, and lifecycle state consistent.
Aggregate Catalogue¶
| Aggregate | Purpose | Boundary |
|---|---|---|
| Tender Opportunity | Root aggregate for a tender opportunity record. | Tender facts, source, status, documents, deadlines, briefing sessions. |
| Tender Source | Governs source configuration and source quality. | Source identity, type, reliability, ingestion rules. |
| Tender Index | Searchable structured tender representation. | Indexed fields, extracted requirements, document references. |
| Opportunity Match | Match between Organization and tender. | Match score, reasons, inputs, status. |
| Qualification Assessment | Eligibility, fit, effort, risk, and readiness analysis. | Qualification result and factors. |
| Recommendation Record | Bid/no-bid recommendation and win probability estimate. | Recommendation state, rationale, confidence, owner decision. |
| Watchlist | Customer monitoring list. | Watch criteria, saved filters, alerts. |
| Saved Opportunity | Saved tender pipeline record. | Customer save state, notes, priority, follow-up state. |
Aggregate Diagram¶
flowchart TD
Tender[Tender Opportunity]
Source[Tender Source]
Index[Tender Index]
Match[Opportunity Match]
Qualification[Qualification Assessment]
Recommendation[Recommendation Record]
Watchlist[Watchlist]
Saved[Saved Opportunity]
Source --> Tender
Tender --> Index
Tender --> Match
Match --> Qualification
Qualification --> Recommendation
Tender --> Saved
Watchlist --> Tender
Core Invariants¶
| Invariant | Description |
|---|---|
| Tender identity is stable | TenderOpportunityId must not change once created. |
| Source is preserved | Tender source and retrieval metadata must be traceable. |
| Deadlines are explicit | Submission and briefing deadlines must be modeled as deadline records. |
| Recommendation is owned | Bid/no-bid recommendation record is owned by Opportunity. |
| Proposal content excluded | Proposal writing and bid response content are out of scope. |
Cross-Domain Reference Rule¶
Opportunity references OrganizationId, ComplianceProfileId or readiness summaries, and Intelligence session IDs. It does not own Organization or Compliance state.