Disciplines · Reference

Oshun Data Ownership Matrix

1.

9sections8 minread

On this page

Status: Legacy pre-OSHUN V1 reference

Last Reviewed: March 23, 2026

Scope note: this document captures an older cross-domain service and storage ownership snapshot from before the March 22, 2026 OSHUN V1 charter and unified PRD. It remains useful for migration planning and legacy monorepo context, but it is not the authoritative ownership source for current OSHUN V1 shell, domain, and subsystem boundaries.

For current OSHUN V1 ownership decisions, use:

  • docs/releases/v1/reports/subsystem-ownership-matrix.md
  • docs/releases/v1/specs/program-charter.md section 3.3
  • docs/releases/v1/specs/web-app-admin-v1-prd.md section 16

This document defines the legacy data ownership, access patterns, and domain boundaries used by the broader monorepo snapshot below. It should not be used to settle current OSHUN V1 assistant, shell, grounding, persona-policy, or generation-control ownership questions.


Table of Contents#

  1. Overview
  2. Domain Definitions
  3. Data Ownership by Domain
  4. Cross-Domain Data Access
  5. External Data Stores
  6. Migration Mapping

Overview#

Ownership Principles#

  1. Single Owner: Each data entity has exactly one owning domain
  2. Read Access: Other domains may read via APIs, never direct database access
  3. Write Access: Only the owning domain can write to its data
  4. Events for Changes: Cross-domain updates happen via events (ADR-0004)
  5. Eventual Consistency: Cross-domain data may be eventually consistent

Access Patterns#

Pattern Description
Owner Full CRUD access, owns the schema
Read Read-only access via API
Event Receives events when data changes
None No access to this data

Domain Definitions#

Domain Responsibility Primary Database
Oshun Auth Identity, authentication, authorization PostgreSQL (shared)
Iris AI assistant, conversations, memory PostgreSQL (iris)
Lilith Consciousness, spiritual content PostgreSQL (lilith)
Yemaya Creative projects, asset management PostgreSQL (yemaya)
Isis Generative AI, GPU jobs, workflows PostgreSQL (isis)
Sophia Research, knowledge graphs, citations PostgreSQL (sophia)
Hathor Worldbuilding, narrative, simulations PostgreSQL (hathor)
Bellona Build pipelines, engine bridges, exports PostgreSQL (bellona)
Tara Meditation, mindfulness, courses PostgreSQL (tara)
Veritas Fact-checking, news verification, claims PostgreSQL (veritas)
Psyche Mental health, behavioral assessments PostgreSQL (psyche)
Nyx Astronomical data, education, simulations PostgreSQL (nyx)
Aja Motion AI, animation, pose estimation PostgreSQL (aja)
Aphrodite Live streaming, broadcasts, chat PostgreSQL (aphrodite)

Note: Not all domains have dedicated PostgreSQL databases in the development Docker Compose. Currently provisioned databases are: oshun_dev, yemaya, lilith, isis, iris, sophia, hathor, bellona, and tara. Additional domain databases can be added to docker/docker-compose.dev.yml as needed.


Data Ownership by Domain#

Oshun Auth (Shared Identity)#

Owner of: | Model | Description | Access by Other Domains | |-------|-------------|------------------------| | User | Core user identity | Read by all | | Session | Active sessions | Event: session.created/ended | | Account | OAuth connections | None | | ApiKey | API key management | Read by API Gateway | | UserPreference | Global user settings | Read by all | | Organization | Workspace entities | Read by all | | OrganizationMember | Membership | Read by all | | Team | Team groupings | Read by Yemaya, Lilith | | AuditLog | Security audit trail | None (compliance only) |

Database: oshun_auth (PostgreSQL)

Redis Keys: | Key Pattern | Purpose | TTL | |-------------|---------|-----| | session:{sessionId} | Session data | 7 days | | user:{userId}:tokens | Active tokens | 24 hours | | rate_limit:{userId}:* | Rate limiting | 1 minute | | blacklist:token:{jti} | Token blacklist | 7 days |


Lilith (Consciousness Experience)#

Owner of: | Model | Description | Access by Other Domains | |-------|-------------|------------------------| | Course | Learning courses | Read by Yemaya (catalog) | | Lesson | Course lessons | None | | Meditation | Meditation content | Event: meditation.completed | | Lecture | Educational lectures | None | | Wisdom | Wisdom content | None | | Quote | Inspirational quotes | None | | Reflection | Reflection prompts | None | | Persona | AI guide personas | Read by Isis (for generation) | | Thread | Conversations | None | | Message | Chat messages | None | | Favorite | User favorites | None | | History | Consumption history | None | | Achievement | User achievements | Event: achievement.earned | | Streak | Activity streaks | None | | AnalyticsEvent | Engagement events | Read by Sophia (analytics) |

Database: lilith (PostgreSQL)

Redis Keys: | Key Pattern | Purpose | TTL | |-------------|---------|-----| | conversation:{threadId}:state | Conversation context | 24 hours | | meditation:{sessionId} | Active meditation | 2 hours | | persona:{personaId}:cache | Persona data cache | 1 hour | | streak:{userId} | Streak tracking | Forever |

S3/MinIO Buckets: | Bucket | Content | Ownership | |--------|---------|-----------| | lilith-media | Meditation audio/video | Owner | | lilith-assets | Course images, thumbnails | Owner | | lilith-transcripts | Audio transcripts | Owner |


Yemaya (Creative Studio)#

Owner of: | Model | Description | Access by Other Domains | |-------|-------------|------------------------| | Project | Creative projects | Event: project.created/updated | | ProjectMember | Project team | None | | Asset | Media assets | Read by Isis, Bellona | | AssetVersion | Asset versions | None | | Folder | Asset organization | None | | Script | Screenplays | Read by Hathor (narrative) | | Scene | Script scenes | Read by Hathor | | Character | Character definitions | Read by Hathor, Isis | | Shot | Camera shots | Read by Isis (rendering) | | Sequence | Production sequences | None | | Location | Filming locations | None | | Task | Production tasks | None | | Schedule | Production schedule | None | | Budget | Budget management | None | | CrewMember | Crew database | None | | Concept | Design concepts | Read by Isis (generation) | | Document | Design documents | Read by Sophia (indexing) | | Comment | Asset/project comments | None | | Plugin | Installed plugins | None |

Database: yemaya (PostgreSQL)

Redis Keys: | Key Pattern | Purpose | TTL | |-------------|---------|-----| | project:{projectId}:lock | Edit locking | 5 minutes | | asset:{assetId}:processing | Processing status | 1 hour | | collaboration:{sessionId} | Active collaborators | 30 minutes | | yjs:{docId} | CRDT state | Persistent |

S3/MinIO Buckets: | Bucket | Content | Ownership | |--------|---------|-----------| | yemaya-assets | Project assets | Owner | | yemaya-renders | Render outputs | Owner | | yemaya-uploads | Upload staging | Owner | | yemaya-exports | Export packages | Owner |


Isis (Generative Factory)#

Owner of: | Model | Description | Access by Other Domains | |-------|-------------|------------------------| | GPUJob | GPU compute jobs | Event: job.completed/failed | | GPUJobMetrics | Job performance | None | | GPUJobOutput | Generated outputs | Read by Yemaya, Lilith | | GPUJobStage | Job progress | Event: job.progress | | AIGeneration | Generation tracking | Read by Yemaya | | Workflow | Generation workflows | Read by Yemaya | | WorkflowVersion | Workflow versions | None | | ModelRegistry | AI model catalog | Read by all | | GeneratedOutput | Output manifests | Read by Yemaya, Lilith | | Provenance | Generation lineage | Read by all (compliance) |

Database: isis (PostgreSQL)

Redis Keys: | Key Pattern | Purpose | TTL | |-------------|---------|-----| | job:{jobId}:status | Job status | 24 hours | | job:{jobId}:progress | Progress updates | 1 hour | | workflow:{workflowId} | Workflow definition | 1 hour | | queue:gpu:* | BullMQ queues | Persistent |

S3/MinIO Buckets: | Bucket | Content | Ownership | |--------|---------|-----------| | isis-outputs | Generated assets | Owner | | isis-models | AI model weights | Owner | | isis-workflows | Workflow definitions | Owner | | isis-cache | Generation cache | Owner |


Sophia (Research & Knowledge)#

Owner of: | Model | Description | Access by Other Domains | |-------|-------------|------------------------| | ResearchDocument | Indexed documents | Read by Lilith, Yemaya | | Citation | Citation database | Read by Lilith | | Claim | Extracted claims | Read by Hathor | | KnowledgePack | Knowledge bundles | Read by Lilith, Hathor | | KnowledgeGraph | Entity graph | Read by Hathor | | Entity | Named entities | Read by all | | Relationship | Entity relationships | Read by Hathor | | SearchIndex | Search indices | None (internal) | | EmbeddingVector | Vector embeddings | None (internal) |

Database: sophia (PostgreSQL + pgvector)

Redis Keys: | Key Pattern | Purpose | TTL | |-------------|---------|-----| | search:{queryHash} | Search cache | 15 minutes | | entity:{entityId} | Entity cache | 1 hour | | graph:{graphId}:nodes | Graph cache | 1 hour |

S3/MinIO Buckets: | Bucket | Content | Ownership | |--------|---------|-----------| | sophia-documents | Source documents | Owner | | sophia-embeddings | Vector embeddings | Owner | | sophia-indices | Search indices | Owner |


Hathor (Worldbuilding & Narrative)#

Owner of: | Model | Description | Access by Other Domains | |-------|-------------|------------------------| | World | World definitions | Read by Yemaya | | WorldVersion | World versions | None | | Narrative | Story structures | Read by Yemaya | | NarrativeArc | Story arcs | None | | Timeline | World timelines | Read by Yemaya | | WorldRule | World rules/laws | Read by Isis (generation constraints) | | Simulation | World simulations | Event: simulation.completed | | SimulationState | Simulation snapshots | None | | Faction | World factions | Read by Yemaya | | Era | Historical eras | Read by Yemaya |

Database: hathor (PostgreSQL)

Redis Keys: | Key Pattern | Purpose | TTL | |-------------|---------|-----| | world:{worldId}:state | Active world state | 1 hour | | simulation:{simId} | Running simulation | 24 hours | | narrative:{narrativeId} | Narrative cache | 1 hour |

S3/MinIO Buckets: | Bucket | Content | Ownership | |--------|---------|-----------| | hathor-worlds | World data | Owner | | hathor-simulations | Simulation outputs | Owner | | hathor-narratives | Narrative exports | Owner |


Bellona (Engine & Build)#

Owner of: | Model | Description | Access by Other Domains | |-------|-------------|------------------------| | Build | Build jobs | Event: build.completed | | BuildArtifact | Build outputs | Read by Yemaya | | BuildLog | Build logs | None | | Bridge | Engine bridges | None (internal) | | BridgeSession | Active bridge sessions | None | | Export | Export jobs | Event: export.ready | | ExportConfig | Export presets | Read by Yemaya | | EngineProject | Engine project files | Read by Yemaya |

Database: bellona (PostgreSQL)

Redis Keys: | Key Pattern | Purpose | TTL | |-------------|---------|-----| | build:{buildId}:status | Build status | 24 hours | | bridge:{bridgeId}:session | Bridge connection | 30 minutes | | export:{exportId} | Export progress | 1 hour |

S3/MinIO Buckets: | Bucket | Content | Ownership | |--------|---------|-----------| | bellona-builds | Build artifacts | Owner | | bellona-exports | Export packages | Owner | | bellona-logs | Build logs | Owner |


Cross-Domain Data Access#

Access Matrix#

Domain Auth Iris Lilith Yemaya Isis Sophia Hathor Bellona Tara Veritas Psyche Nyx Aja Aphrodite
Auth Owner Read Read Read Read Read Read Read Read Read Read Read Read Read
Iris Read Owner API API API API API None API API API None None None
Lilith Read API Owner Event API API Event None API None None None None None
Yemaya Read API Event Owner API API API API None None None None None None
Isis Read API API API Owner None API None None None None None None None
Sophia Read API API API None Owner API None None API None None None None
Hathor Read None Event API API API Owner None None None None None None None
Bellona Read None None API None None None Owner None None None None None None
Tara Read API API None None None None None Owner None None None None None
Veritas Read API None None None API None None None Owner None None None None
Psyche Read API None None None None None None None None Owner None None None
Nyx Read None None None None API None None None None None Owner None None
Aja Read None None API API None None None None None None None Owner None
Aphrodite Read None None None None None None None None None None None None Owner

Cross-Domain Event Flows#

text
User Action in Yemaya
       │
       ▼
yemaya.project.created ──► Isis (prepare generation pipelines)
       │                   Hathor (initialize linked world record)
       │                   Sophia (index project documents)
       │
       ▼
yemaya.asset.approved ───► Isis (can use in generation)
                          Bellona (include in build)

User Action in Lilith
       │
       ▼
lilith.meditation.completed ──► Sophia (update analytics)
                               Yemaya (achievement trigger)

Isis Generation
       │
       ▼
isis.asset.generated ──► Yemaya (new asset available)
                        Lilith (meditation asset ready)

Bellona Build
       │
       ▼
bellona.build.completed ──► Yemaya (build artifact ready)
bellona.export.ready ─────► Yemaya (download available)

External Data Stores#

PostgreSQL Databases#

Database Domain Size Estimate Backup Frequency
oshun_dev Shared 10GB Hourly
iris Iris 100GB Hourly
lilith Lilith 50GB Hourly
yemaya Yemaya 500GB Hourly
isis Isis 100GB Daily
sophia Sophia 200GB Daily
hathor Hathor 50GB Daily
bellona Bellona 20GB Daily
tara Tara 20GB Daily

Redis Clusters#

Cluster Purpose Persistence Memory
oshun-cache Application cache RDB 16GB
oshun-sessions Auth sessions AOF 8GB
oshun-queues BullMQ job queues AOF 32GB
oshun-pubsub Event pub/sub None 4GB

S3/MinIO Buckets Summary#

Bucket Prefix Domain Storage Class Lifecycle
lilith-* Lilith Standard 90 days IA
yemaya-* Yemaya Standard 30 days IA
isis-* Isis Intelligent 7 days expire cache
sophia-* Sophia Infrequent Archive after 180 days
hathor-* Hathor Standard 30 days IA
bellona-* Bellona Standard 7 days expire logs

Migration Mapping#

Lilith Services → Oshun Domains#

Lilith Service Target Domain Tables Migrated
auth Oshun Auth users, sessions, oauth_connections
content Lilith courses, lessons, meditations, personas
media Lilith (assets) + Isis (processing) assets, variants, transcripts
conversation Lilith threads, messages, citations
user-preferences Oshun Auth + Lilith preferences, favorites, history
analytics Sophia events, metrics

Yemaya Models → Oshun Domains#

Yemaya Model Group Target Domain
User, Organization, Team Oshun Auth
Project, Asset, Folder Yemaya
Script, Scene, Shot, Character Yemaya
GPUJob, AIGeneration Isis
Concept, Document Yemaya + Sophia (indexing)
Task, Schedule, Budget Yemaya
Plugin Yemaya
Subscription, Invoice Oshun Auth (billing)

Summary Statistics#

Domain Tables Redis Keys S3 Buckets Est. Storage
Oshun Auth 12 4 patterns 0 10GB
Lilith 25 4 patterns 3 100GB
Yemaya 80 4 patterns 4 2TB
Isis 10 4 patterns 4 500GB
Sophia 10 3 patterns 3 300GB
Hathor 12 3 patterns 3 100GB
Bellona 8 3 patterns 3 50GB
Total 157 25 patterns 20 ~3TB

Revision History#

Version Date Author Changes
1.0 2026-01-10 Development Team Initial version
1.1 2026-02-14 Development Team Added Iris, Tara, Veritas, Psyche, Nyx, Aja, Aphrodite domains