Skip to main content

Scaling Resources (CORE ↔ RESOURCE)

Goal​

Scale by separating authoritative runtime responsibilities (CORE) from feature resources (RESOURCE) while keeping one programming model.

  • CORE resource:
    • player/session authority
    • security providers and observers
    • shared infrastructure APIs (players, authorization, channels)
  • RESOURCE resources:
    • gameplay modules (jobs, economy, housing, etc.)
    • thin transport handlers + domain services

How OpenCore Helps​

  • Ports provide local/remote implementations transparently.
  • Same abstractions are used across modes.
  • Runtime setup enforces provider requirements in CORE.

Practical Rules​

  • Keep cross-resource APIs stable and versioned.
  • Avoid direct global state coupling between resources.
  • Put shared contracts/types in dedicated shared modules.
  • Add explicit fallback behavior for temporary CORE unavailability.

Deployment Checklist​

  1. Define which resource owns each domain boundary.
  2. Keep security and identity in CORE.
  3. Load CORE before dependent RESOURCE modules.
  4. Validate startup with integration smoke checks.