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.mddocs/releases/v1/specs/program-charter.mdsection 3.3docs/releases/v1/specs/web-app-admin-v1-prd.mdsection 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#
- Overview
- Domain Definitions
- Data Ownership by Domain
- Cross-Domain Data Access
- External Data Stores
- Migration Mapping
Overview#
Ownership Principles#
- Single Owner: Each data entity has exactly one owning domain
- Read Access: Other domains may read via APIs, never direct database access
- Write Access: Only the owning domain can write to its data
- Events for Changes: Cross-domain updates happen via events (ADR-0004)
- 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, andtara. Additional domain databases can be added todocker/docker-compose.dev.ymlas 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#
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 |