🏗️ System Layers

Pattern: Controller-Service-Repository + DI. Boot: PuterServer instantiates sequentially, downward injection.

🥞 Stack

  1. Controllers: HTTP entry. Auth gates, validation -> Service.
  2. Drivers: RPC (/drivers/*). Val -> Service.
  3. Services: Biz logic (assumes auth).
  4. Stores: Persistence wrappers.
  5. Clients: Infra adapters (SQL, Valkey, S3).
  6. Config: Singleton IConfig.

🔌 Extensions

  • Hook via global extension.
  • Rule: Non-critical only (thumbnails, telemetry). No load-bearing features.

🛡️ Conventions

  • State: AsyncLocalStorage (req/actor) used sparingly.
  • Flow: Strict downward isolation. Controllers NEVER invoke Clients directly.