Skip to main content

Service Map

This map reflects the real implementation in the current frontend and backend repositories, plus the current deployment assets in the beta monorepo.

Web App

FieldDetails
PurposePrimary product UI for plans, followers, leaderboards, logs, settings, and simulations
ResponsibilitiesApollo GraphQL queries and mutations, GraphQL subscriptions, wallet-aware UI, simulation workflows, leaderboard analysis
InputsUser actions, GraphQL responses, subscription events, configured GraphQL HTTP and WSS endpoints
OutputsUI state changes, GraphQL operations, local notifications
DependenciesNext.js, Apollo Client, HeroUI, RainbowKit, Wagmi
Failure casesGraphQL endpoint mismatch, expired auth token, websocket disconnects, incomplete env config

Docs App

FieldDetails
PurposePublic-facing documentation site
ResponsibilitiesProduct docs, architecture docs, runbooks, contribution guidance
InputsMarkdown and MDX content in apps/docs/docs
OutputsStatic Docusaurus site
DependenciesDocusaurus, Nginx container in Helm deploy path
Failure casesBroken links, outdated content, build regressions

API Gateway

FieldDetails
PurposeGraphQL API and the main user-facing backend surface
ResponsibilitiesExpose product workflows, coordinate Redis-connected workers, read and write Prisma models, publish subscription events
InputsGraphQL queries, mutations, subscriptions, Redis events
OutputsGraphQL responses, subscription payloads, Redis commands and events
DependenciesNestJS, Prisma, PostgreSQL, Redis
Failure casesDB connectivity issues, schema drift, invalid env setup, downstream worker unavailability

Simulation Service

FieldDetails
PurposeCreate and evaluate manual and auto simulations
ResponsibilitiesCreate simulations, generate simulation plans, select leaders, maintain simulation bot caches, calculate aggregate metrics
InputsSimulation config, indexed historical logs, leader selection criteria
OutputsSimulation records, plan details, bot summaries, aggregate PnL and drawdown metrics
DependenciesPrisma models such as Simulation, SimulationPlan, SimulationBot, SimulationLeaderSelection, PerpTradingEventLog
Failure casesMissing history, invalid selection ranges, stale cache state, unsupported contract history

Leaderboard Service

FieldDetails
PurposeHistorical trade indexing and leaderboard support
ResponsibilitiesNormalize finalized on-chain logs, compute PnL snapshots, provide historical source data for ranking and simulation
InputsContract metadata, blockchain event logs, platform parsers
OutputsPerpTradingEventLog, PnlSnapshotV2, initialization flags, contract adaption state
DependenciesRedis transport, Prisma, EVM RPC providers, adapter code under src/web3/platform
Failure casesRPC failures, parser drift, contract metadata errors, delayed indexing

Platform / Contract Service

FieldDetails
PurposeTrack which contract and parser should be used for each venue and historical window
ResponsibilitiesManage platform, chain, version, status, fromBlock, and optional toBlock metadata
InputsSeed data, migrations, admin actions, contract-adaption triggers
OutputsActive and historical contract definitions used by workers and simulation logic
DependenciesPrisma Contract model, platform adapters
Failure casesWrong block boundaries, incorrect version tagging, missing chain coverage

Indexer / Adapter Layer

FieldDetails
PurposeTurn venue-specific logs into normalized trading events
ResponsibilitiesABI management, parser logic, platform-specific transforms, contract-scoped log reads
InputsRPC logs, contract metadata, parser version rules
OutputsNormalized actions, trade history rows, leaderboard data
Dependenciessrc/web3/platform/gns, gmx, avnt, and shared chain utilities
Failure casesABI drift, event shape changes, incorrect chain configuration, log replay gaps

Database

FieldDetails
PurposeSource of truth for product state and historical analytics
ResponsibilitiesPersist plans, bots, missions, tasks, users, contracts, logs, simulations, and indexed history
InputsPrisma writes from API and worker services
OutputsDurable records queried by GraphQL and workers
DependenciesPostgreSQL, Prisma
Failure casesschema mismatch, migration mistakes, backfill problems

Cache / Queue

Redis is present today as the NestJS microservice transport and coordination channel.

FieldDetails
PurposeProcess coordination, control messages, and event fan-out
ResponsibilitiesProcess status events, worker control, internal message patterns
InputsAPI service emits and worker handlers
Outputsinternal event delivery between service modes
DependenciesNestJS microservices over Redis
Failure casesRedis outage, lost connectivity, stuck worker coordination