Governance Meetings Technical Reference
Architecture Overview
The Governance Meetings module is designed as a space-scoped service that bridges the gap between conversational governance (meetings) and structural governance (metadata). It employs a Polymorphic Task Architecture to link action items to various system entities.
Compliance Standards
Auditability is ensured because all changes to DQMeeting are captured in MeetingHistory (an append-only ledger). Isolation is maintained by strictly scoping meetings to a Space. Cross-space visibility is achieved via aggregation services, not direct object sharing.
Data Model
Entity Relationship Diagram (ERD)
Core Entities
DQMeeting
The root aggregate root for a meeting event.
| Field | Type | Constraint | Description |
|---|---|---|---|
id | UUID | PK | Unique identifier. |
space_id | UUID | FK | Parent space. |
title | String | Not Null | Meeting subject. |
status | Enum | Default='planned' | planned, in_progress, completed, cancelled. |
agenda | Text | Markdown | Planned topics. |
notes | Text | Markdown | Minutes taken during the meeting. |
started_at | DateTime | UTC | Actual start time. |
ended_at | DateTime | UTC | Actual end time. |
MeetingActionItem
A discrete unit of work assigned during a meeting. This entity uses a Polymorphic Foreign Key pattern (logically, if not strictly database-enforced) to link to other platform objects.
| Field | Type | Description |
|---|---|---|
meeting_id | UUID | Parent meeting. |
assignee_id | UUID | User responsible for completion. |
target_id | UUID | ID of the linked entity (Product, Issue, Check). |
target_type | String | Discriminator: product, issue, quality_check. |
due_date | Date | Target completion date. |
completed_at | DateTime | Timestamp of completion. |
Service Layer
MeetingService
The primary interface for interaction.
key Methods
create_meeting(space_id: UUID, data: MeetingCreateDTO) -> DQMeeting
- Validation: Ensures
space_idexists and user hasMEETING_CREATEpermission. - Side Effects: Sends calendar invites (via NotificationService) to attendees.
add_action_item(meeting_id: UUID, item: ActionItemDTO) -> MeetingActionItem
- Polymorphic Validation:
- If
target_type='product', verifiestarget_idexists inDataProducttable. - If
target_type='issue', verifiestarget_idexists inDQTickettable.
- If
- Notification: Triggers an "Action Item Assigned" alert to the assignee.
update_meeting_notes(meeting_id: UUID, notes: str, editor: User)
- Auditing:
- Fetches current state.
- Computes diff.
- Writes a record to
MeetingHistorywithchange_type='NOTES_UPDATE'. - Atomically updates the
notesfield.
Integration Patterns
Notification System Integration
The module publishes events to the central NotificationBus.
MEETING_SCHEDULED-> Email InviteACTION_ITEM_ASSIGNED-> In-App Alert + EmailMEETING_NOTES_PUBLISHED-> Feed Activity
Search Indexing
DQMeeting entities are indexed by the SearchService.
- Indexable Fields:
title,agenda,notes. - Permissions: Search results are filtered by
space_idaccess.