Status. Proposed design only. Nothing in this vault is DG client approval. No application, service or test has been executed; every scenario is Not executed. Fees and dates are open.

Data architecture

Purpose

Entities and invariants the schema must enforce. The physical schema is not final; Data-Model is conceptual.

Source notes

Data-Model, Versions-and-State, Notifications-and-Outbox.

Entities

Company, User, Membership (company, user, role), Opportunity, Opportunity version, Expression of interest, Conversation (company pair, kind), Message, Next action; supporting records for approval, outbox, delivery attempt and audit.

Invariants the database should enforce

  • One active membership per user; a company has many members.
  • One active interest per respondent company per opportunity; no self-response.
  • Repeated acceptance creates one discussion.
  • Interest references an immutable published version; approval binds exact content and intended action.
  • Assignees are active, authorised members of the relevant company.
  • Outbox: unique event-recipient-channel key.

Indexes

Memberships, active opportunities, conversation participants, pending actions and job claims.

Conventions (Proposed)

UUIDv7 identifiers and expected-version columns on sensitive records (ADR-0004-UUIDv7-and-Idempotency). Migrations are versioned and reversible where feasible (Build-Test-and-Deployment).

Open decisions

Blocked by Q09: retention, deletion and audit exceptions before any live data.

Scenarios

T01, T13, T18, T19, T21, T33.

Change history

DateChange
2026-10-20Created (bootstrap Phase 2)