5.1 Architecture Decisions - JoshuaJewell/IDApTIK GitHub Wiki
π Architecture Decisions β IDApTIK
π’ Beginner: What is an architecture?
Before we talk code, letβs imagine building a house:
- The foundation = The core game engine (Rust + TypeScript)
- The walls = Multiplayer framework (Elixir for fault tolerance)
- The doors & windows = How players interact (GraphQL for fast data exchange)
Everything needs to be strong and flexible, just like IDApTIKβs asymmetric multiplayer design.
π΅ Novice: How do we structure IDApTIK?
We use three key layers to make sure the game runs smoothly:
- Frontend (TypeScript + WASM) β UI, player controls, real-time visuals
- Backend (Rust + Elixir) β Multiplayer coordination, AI-driven security teams
- Middleware (GraphQL) β Fast hacker/infiltrator data exchange, structured queries
Our goal is fault-tolerant, scalable multiplayer mechanics that balance performance, adaptability, and strategic complexity.
β« Advanced: Optimization & scalability strategies
π₯ Rust-powered execution models β High-performance physics and event processing
π₯ Elixir-driven rollback resilience β Ensuring multiplayer interactions remain fault-tolerant
π₯ Podman-based security AI scaling β Containerized defensive routines adapting to infiltrator strategies
π₯ GraphQL for asymmetric data requests β Hacker teams get limited, real-time intelligence while security firms use structured responses
π₯ Redis-powered caching β Reducing lag during real-time player interactions