# mangiapanejohn-dev/mobius-searcher architecture

> Architecture diagram of the GitHub repository mangiapanejohn-dev/mobius-searcher, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/mangiapanejohn-dev/mobius-searcher
- Repository: https://github.com/mangiapanejohn-dev/mobius-searcher

## Overview

MØBIUS-Searcher is a PAPER-by-default Solana arbitrage research and execution application. Its main workflow streams pool and oracle changes, schedules affected routes, obtains Jupiter-built legs, prices and assembles opportunities, simulates transactions, applies risk gates, and then records or executes according to mode. The README also documents terminal monitoring, session replay/reporting, and separate strategy research. Wiring is based on the README and sampled excerpts; unsampled module internals and uncertain links are omitted.

Main entry points: [`apps/mobius-searcher/src/engine.rs`](https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/apps/mobius-searcher/src/engine.rs) (Runtime wiring), [`crates/execution/src/pipeline.rs`](https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/execution/src/pipeline.rs) (Opportunity pipeline), [`apps/mobius-searcher/src/main.rs`](https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/apps/mobius-searcher/src/main.rs) (CLI entry), [`crates/execution/src/router.rs`](https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/execution/src/router.rs) (Event-driven scheduler)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Runtime orchestration"]
  node_main["CLI entry<br/>[main.rs]"]
  node_engine["Runtime wiring<br/>[engine.rs]"]
  node_config["Core config and models<br/>[config.rs]"]
end

subgraph group_market["Market and routing"]
  node_feeds["Chain feeds<br/>[feed.rs]"]
  node_rpc["RPC client<br/>[rpc.rs]"]
  node_hot["Hot tick handling<br/>[hot.rs]"]
  node_router["Event-driven scheduler<br/>[router.rs]"]
  node_jupiter["Jupiter quotes/build<br/>[client.rs]"]
  node_strategy["Route strategies<br/>[strategies.rs]"]
end

subgraph group_trade["Evaluation and execution"]
  node_pipeline["Opportunity pipeline<br/>[pipeline.rs]"]
  node_assembly["Transaction assembly<br/>[assemble.rs]"]
  node_simulator["Transaction simulation<br/>[simulate.rs]"]
  node_risk["Risk gates<br/>[lib.rs]"]
  node_live["Mode-gated execution<br/>[live.rs]"]
  node_jito["Jito bundle service<br/>[client.rs]"]
end

subgraph group_observability["Storage and telemetry"]
  node_bus["Event and telemetry bus<br/>[bus.rs]"]
  node_recorder["Session recorder<br/>[recorder.rs]"]
  node_store[("Session database<br/>[store.rs]")]
end

subgraph group_product["User interface and research"]
  node_tui["Terminal interface<br/>[app.rs]"]
  node_hub["UI view model<br/>[hub.rs]"]
  node_research["Research workflows<br/>[mod.rs]"]
  node_researchdb[("Research database<br/>[research.rs]")]
end

node_operator(("Operator"))
node_solana{{"Solana RPC and WebSocket"}}
node_jupiter_service{{"Jupiter API"}}
node_jito_service{{"Jito Block Engine"}}

node_operator -->|"invokes"| node_main
node_main -->|"starts runtime"| node_engine
node_main -->|"runs research"| node_research
node_engine -->|"loads settings"| node_config
node_engine -->|"starts feeds"| node_feeds
node_feeds -->|"subscribes"| node_solana
node_engine -->|"routes updates"| node_hot
node_hot -->|"signals changes"| node_router
node_engine -->|"starts scheduler"| node_router
node_router -->|"uses route plans"| node_strategy
node_router -->|"dispatches decisions"| node_pipeline
node_pipeline -->|"builds legs"| node_jupiter
node_jupiter -->|"requests quotes"| node_jupiter_service
node_pipeline -->|"assembles transaction"| node_assembly
node_pipeline -->|"simulates transaction"| node_rpc
node_rpc -->|"sends RPC"| node_solana
node_pipeline -->|"checks opportunity"| node_risk
node_pipeline -->|"dispatches by mode"| node_live
node_live -.->|"submits bundle"| node_jito
node_jito -->|"sends JSON-RPC"| node_jito_service
node_engine -->|"emits runtime events"| node_bus
node_pipeline -->|"emits evaluations"| node_bus
node_bus -->|"records events"| node_recorder
node_recorder -->|"writes sessions"| node_store
node_main -->|"opens sessions"| node_store
node_engine -->|"starts interface"| node_tui
node_tui -->|"reads view state"| node_hub
node_bus -->|"updates view"| node_hub
node_main -->|"opens research store"| node_researchdb
node_research -->|"stores and reads samples"| node_researchdb

click node_main "https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/apps/mobius-searcher/src/main.rs"
click node_engine "https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/apps/mobius-searcher/src/engine.rs"
click node_config "https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/core/src/config.rs"
click node_feeds "https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/market/src/feed.rs"
click node_rpc "https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/market/src/rpc.rs"
click node_hot "https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/market/src/hot.rs"
click node_router "https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/execution/src/router.rs"
click node_jupiter "https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/jupiter/src/client.rs"
click node_strategy "https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/strategy/src/strategies.rs"
click node_pipeline "https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/execution/src/pipeline.rs"
click node_assembly "https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/execution/src/assemble.rs"
click node_simulator "https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/execution/src/simulate.rs"
click node_risk "https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/risk/src/lib.rs"
click node_live "https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/execution/src/live.rs"
click node_jito "https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/jito/src/client.rs"
click node_bus "https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/telemetry/src/bus.rs"
click node_recorder "https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/storage/src/recorder.rs"
click node_store "https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/storage/src/store.rs"
click node_tui "https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/tui/src/app.rs"
click node_hub "https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/tui/src/hub.rs"
click node_research "https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/apps/mobius-searcher/src/research/mod.rs"
click node_researchdb "https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/storage/src/research.rs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_main,node_engine,node_config toneBlue
class node_feeds,node_rpc,node_hot,node_router,node_jupiter,node_strategy toneAmber
class node_pipeline,node_assembly,node_simulator,node_risk,node_live,node_jito,node_jupiter_service toneMint
class node_bus,node_recorder,node_store toneRose
class node_tui,node_hub,node_research,node_researchdb,node_operator,node_solana,node_jito_service toneIndigo
```

## Components

### Runtime orchestration

- [CLI entry](https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/apps/mobius-searcher/src/main.rs): `apps/mobius-searcher/src/main.rs`
- [Runtime wiring](https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/apps/mobius-searcher/src/engine.rs): `apps/mobius-searcher/src/engine.rs`
- [Core config and models](https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/core/src/config.rs): `crates/core/src/config.rs`

### Market and routing

- [Chain feeds](https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/market/src/feed.rs): `crates/market/src/feed.rs`
- [RPC client](https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/market/src/rpc.rs): `crates/market/src/rpc.rs`
- [Hot tick handling](https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/market/src/hot.rs): `crates/market/src/hot.rs`
- [Event-driven scheduler](https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/execution/src/router.rs): `crates/execution/src/router.rs`
- [Jupiter quotes/build](https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/jupiter/src/client.rs): `crates/jupiter/src/client.rs`
- [Route strategies](https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/strategy/src/strategies.rs): `crates/strategy/src/strategies.rs`

### Evaluation and execution

- [Opportunity pipeline](https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/execution/src/pipeline.rs): `crates/execution/src/pipeline.rs`
- [Transaction assembly](https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/execution/src/assemble.rs): `crates/execution/src/assemble.rs`
- [Transaction simulation](https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/execution/src/simulate.rs): `crates/execution/src/simulate.rs`
- [Risk gates](https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/risk/src/lib.rs): `crates/risk/src/lib.rs`
- [Mode-gated execution](https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/execution/src/live.rs): `crates/execution/src/live.rs`
- [Jito bundle service](https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/jito/src/client.rs): `crates/jito/src/client.rs`

### Storage and telemetry

- [Event and telemetry bus](https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/telemetry/src/bus.rs): `crates/telemetry/src/bus.rs`
- [Session recorder](https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/storage/src/recorder.rs): `crates/storage/src/recorder.rs`
- [Session database](https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/storage/src/store.rs): `crates/storage/src/store.rs`

### User interface and research

- [Terminal interface](https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/tui/src/app.rs): `crates/tui/src/app.rs`
- [UI view model](https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/tui/src/hub.rs): `crates/tui/src/hub.rs`
- [Research workflows](https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/apps/mobius-searcher/src/research/mod.rs): `apps/mobius-searcher/src/research/mod.rs`
- [Research database](https://github.com/mangiapanejohn-dev/mobius-searcher/blob/main/crates/storage/src/research.rs): `crates/storage/src/research.rs`

### Other components

- **Operator**
- **Solana RPC and WebSocket**
- **Jupiter API**
- **Jito Block Engine**

## Connections

- Operator → CLI entry: invokes
- CLI entry → Runtime wiring: starts runtime
- CLI entry → Research workflows: runs research
- Runtime wiring → Core config and models: loads settings
- Runtime wiring → Chain feeds: starts feeds
- Chain feeds → Solana RPC and WebSocket: subscribes
- Runtime wiring → Hot tick handling: routes updates
- Hot tick handling → Event-driven scheduler: signals changes
- Runtime wiring → Event-driven scheduler: starts scheduler
- Event-driven scheduler → Route strategies: uses route plans
- Event-driven scheduler → Opportunity pipeline: dispatches decisions
- Opportunity pipeline → Jupiter quotes/build: builds legs
- Jupiter quotes/build → Jupiter API: requests quotes
- Opportunity pipeline → Transaction assembly: assembles transaction
- Opportunity pipeline → RPC client: simulates transaction
- RPC client → Solana RPC and WebSocket: sends RPC
- Opportunity pipeline → Risk gates: checks opportunity
- Opportunity pipeline → Mode-gated execution: dispatches by mode
- Mode-gated execution → Jito bundle service: submits bundle
- Jito bundle service → Jito Block Engine: sends JSON-RPC
- Runtime wiring → Event and telemetry bus: emits runtime events
- Opportunity pipeline → Event and telemetry bus: emits evaluations
- Event and telemetry bus → Session recorder: records events
- Session recorder → Session database: writes sessions
- CLI entry → Session database: opens sessions
- Runtime wiring → Terminal interface: starts interface
- Terminal interface → UI view model: reads view state
- Event and telemetry bus → UI view model: updates view
- CLI entry → Research database: opens research store
- Research workflows → Research database: stores and reads samples
