[ARCH-P2] Implement Evennia hub-and-spoke federation architecture #539

Closed
opened 2026-04-07 02:12:39 +00:00 by Timmy · 0 comments
Owner

Architecture

                    ┌─────────────────┐
                    │   THE NEXUS     │ ← VPS (public square)
                    │  External: Yes  │
                    │  Canonical hub  │
                    └───────┬─────────┘
                            │
          ┌─────────────────┼─────────────────┐
          │                 │                 │
    ┌─────┴─────┐    ┌──────┴──────┐   ┌──────┴──────┐
    │   TIMMY   │    │   ALLEGRO   │   │  BEZALEL    │
    │  (Mac)    │    │   (VPS)     │   │  (VPS)      │
    │ Sandbox   │    │  Workshop   │   │  Forge      │
    │ Local     │    │             │   │             │
    └───────────┘    └─────────────┘   └─────────────┘

Design Principles

  • Local-first: Mac runs even if VPS dies
  • VPS = public square (externally reachable)
  • Each house runs its own Evennia instance
  • A bridge syncs presence and events, not full state

What Gets Bridged

  1. Character arrivals/departures
  2. Messages in portal rooms
  3. World events (fire, rain, growth, power)
  4. Trust changes (partial sync)
  5. Item transfers between worlds

What Stays Independent

  1. Each world's room layouts
  2. Local-only rooms (no portal)
  3. Each world's independent tick cycle
  4. House-specific events

See Linked Issues

  • [BEZ-P0] Fix Bezalel Evennia settings
  • [BEZ-P0] Add Tailscale to Bezalel
  • [BEZ-P1] Create Bezalel world
  • [BRIDGE-P1] Deploy bridge API on all worlds
  • [ALLEGRO-P1] Fix SSH from Mac to Allegro

Acceptance Criteria

  • All 3 worlds running and accessible
  • Bridge daemon syncing between all 3
  • Character travel works in both directions
  • Events sync between worlds
  • Each world continues if others die
## Architecture ``` ┌─────────────────┐ │ THE NEXUS │ ← VPS (public square) │ External: Yes │ │ Canonical hub │ └───────┬─────────┘ │ ┌─────────────────┼─────────────────┐ │ │ │ ┌─────┴─────┐ ┌──────┴──────┐ ┌──────┴──────┐ │ TIMMY │ │ ALLEGRO │ │ BEZALEL │ │ (Mac) │ │ (VPS) │ │ (VPS) │ │ Sandbox │ │ Workshop │ │ Forge │ │ Local │ │ │ │ │ └───────────┘ └─────────────┘ └─────────────┘ ``` ## Design Principles - Local-first: Mac runs even if VPS dies - VPS = public square (externally reachable) - Each house runs its own Evennia instance - A bridge syncs presence and events, not full state ## What Gets Bridged 1. Character arrivals/departures 2. Messages in portal rooms 3. World events (fire, rain, growth, power) 4. Trust changes (partial sync) 5. Item transfers between worlds ## What Stays Independent 1. Each world's room layouts 2. Local-only rooms (no portal) 3. Each world's independent tick cycle 4. House-specific events ## See Linked Issues - [BEZ-P0] Fix Bezalel Evennia settings - [BEZ-P0] Add Tailscale to Bezalel - [BEZ-P1] Create Bezalel world - [BRIDGE-P1] Deploy bridge API on all worlds - [ALLEGRO-P1] Fix SSH from Mac to Allegro ## Acceptance Criteria - [ ] All 3 worlds running and accessible - [ ] Bridge daemon syncing between all 3 - [ ] Character travel works in both directions - [ ] Events sync between worlds - [ ] Each world continues if others die
Timmy self-assigned this 2026-04-07 02:12:40 +00:00
Timmy closed this issue 2026-04-07 13:49:45 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Timmy_Foundation/timmy-home#539