Skip to main content

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.

FieldTypeConstraintDescription
idUUIDPKUnique identifier.
space_idUUIDFKParent space.
titleStringNot NullMeeting subject.
statusEnumDefault='planned'planned, in_progress, completed, cancelled.
agendaTextMarkdownPlanned topics.
notesTextMarkdownMinutes taken during the meeting.
started_atDateTimeUTCActual start time.
ended_atDateTimeUTCActual 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.

FieldTypeDescription
meeting_idUUIDParent meeting.
assignee_idUUIDUser responsible for completion.
target_idUUIDID of the linked entity (Product, Issue, Check).
target_typeStringDiscriminator: product, issue, quality_check.
due_dateDateTarget completion date.
completed_atDateTimeTimestamp of completion.

Service Layer

MeetingService

The primary interface for interaction.

key Methods

create_meeting(space_id: UUID, data: MeetingCreateDTO) -> DQMeeting

  • Validation: Ensures space_id exists and user has MEETING_CREATE permission.
  • Side Effects: Sends calendar invites (via NotificationService) to attendees.

add_action_item(meeting_id: UUID, item: ActionItemDTO) -> MeetingActionItem

  • Polymorphic Validation:
    • If target_type='product', verifies target_id exists in DataProduct table.
    • If target_type='issue', verifies target_id exists in DQTicket table.
  • 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 MeetingHistory with change_type='NOTES_UPDATE'.
    • Atomically updates the notes field.

Integration Patterns

Notification System Integration

The module publishes events to the central NotificationBus.

  • MEETING_SCHEDULED -> Email Invite
  • ACTION_ITEM_ASSIGNED -> In-App Alert + Email
  • MEETING_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_id access.