# nofendian17/stockbit-haka-haki architecture

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

- Interactive diagram: https://gitdiagram.com/nofendian17/stockbit-haka-haki
- Repository: https://github.com/nofendian17/stockbit-haka-haki

## Overview

Stockbit Analysis ingests live market messages, detects whale activity and generates filtered trading signals, persists market and signal history, then exposes analytics and live updates through a dashboard and optional webhooks. The graph follows the documented product stages and sampled orchestration, API, persistence, and integration code; some feature-specific internals are represented by their exact enclosing directory because their implementations were not sampled.

Main entry points: [`app/app.go`](https://github.com/nofendian17/stockbit-haka-haki/blob/main/app/app.go) (App Orchestrator), [`database/repository.go`](https://github.com/nofendian17/stockbit-haka-haki/blob/main/database/repository.go) (Repository Facade), [`api/server.go`](https://github.com/nofendian17/stockbit-haka-haki/blob/main/api/server.go) (HTTP API), [`notifications/webhook_manager.go`](https://github.com/nofendian17/stockbit-haka-haki/blob/main/notifications/webhook_manager.go) (Webhook Manager)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ingestion["Live Ingestion"]
  node_app["App Orchestrator<br/>[app.go]"]
  node_auth["Authentication<br/>[manager.go]"]
  node_ws["Feed Connection<br/>[manager.go]"]
  node_dispatch["Message Dispatch<br/>[manager.go]"]
  node_tradehandler["Trade Handler<br/>[running_trade.go]"]
end

subgraph group_analysis["Market Analysis"]
  node_whale["Whale Detection"]
  node_baseline["Baseline Analysis"]
  node_regime["Regime Analysis"]
  node_signalgen["Signal Generation"]
  node_filter["Signal Filtering<br/>[signal_filter.go]"]
  node_risk["Exit Strategy<br/>[exit_strategy.go]"]
  node_tracker["Signal Tracking<br/>[signal_tracker.go]"]
  node_llm["LLM Client<br/>[client.go]"]
end

subgraph group_state["State and History"]
  node_repo["Repository Facade<br/>[repository.go]"]
  node_signalrepo["Signal Repository<br/>[repository.go]"]
  node_store[("TimescaleDB<br/>[connection.go]")]
  node_cache[("Redis Cache<br/>[redis.go]")]
end

subgraph group_delivery["API and Delivery"]
  node_api["HTTP API<br/>[server.go]"]
  node_broker["Realtime Broker<br/>[broker.go]"]
  node_webhook["Webhook Manager<br/>[webhook_manager.go]"]
  node_frontend["Dashboard UI<br/>[app.js]"]
  node_strategyui["Strategy UI"]
end

node_stockbit(("Stockbit Feed"))
node_llmservice{{"LLM Service"}}
node_destinations{{"Webhook Destinations"}}
node_browser(("Dashboard User"))

node_app -->|"initializes"| node_auth
node_app -->|"connects feed"| node_ws
node_auth -->|"provides tokens"| node_ws
node_stockbit -->|"streams messages"| node_ws
node_app -->|"routes messages"| node_dispatch
node_ws -->|"returns messages"| node_app
node_dispatch -->|"dispatches trades"| node_tradehandler
node_tradehandler -->|"persists market data"| node_repo
node_tradehandler -->|"broadcasts updates"| node_broker
node_app -->|"starts calculator"| node_baseline
node_app -->|"starts follow-up"| node_whale
node_app -->|"starts tracker"| node_tracker
node_baseline -->|"stores baselines"| node_repo
node_whale -->|"records alerts"| node_repo
node_signalgen -->|"filters signals"| node_filter
node_filter -->|"sets trade levels"| node_risk
node_tracker -->|"generates signals"| node_signalgen
node_tracker -->|"tracks outcomes"| node_repo
node_signalgen -.->|"requests insights"| node_llm
node_llm -.->|"calls completion API"| node_llmservice
node_repo -->|"delegates signal data"| node_signalrepo
node_signalrepo -->|"reads and writes"| node_store
node_repo -->|"reads and writes"| node_store
node_api -->|"queries analytics"| node_repo
node_api -.->|"requests analysis"| node_llm
node_api -->|"serves event stream"| node_broker
node_broker -->|"streams updates"| node_frontend
node_browser -->|"uses dashboard"| node_frontend
node_frontend -->|"requests data"| node_api
node_strategyui -->|"fetches signals"| node_api
node_app -->|"starts server"| node_api
node_whale -.->|"sends alerts"| node_webhook
node_webhook -->|"loads webhooks"| node_repo
node_webhook -->|"caches webhooks"| node_cache
node_webhook -.->|"delivers alerts"| node_destinations

click node_app "https://github.com/nofendian17/stockbit-haka-haki/blob/main/app/app.go"
click node_auth "https://github.com/nofendian17/stockbit-haka-haki/blob/main/auth/manager.go"
click node_ws "https://github.com/nofendian17/stockbit-haka-haki/blob/main/websocket/manager.go"
click node_dispatch "https://github.com/nofendian17/stockbit-haka-haki/blob/main/handlers/manager.go"
click node_tradehandler "https://github.com/nofendian17/stockbit-haka-haki/blob/main/handlers/running_trade.go"
click node_whale "https://github.com/nofendian17/stockbit-haka-haki/blob/main/app/whale_followup_tracker.go"
click node_baseline "https://github.com/nofendian17/stockbit-haka-haki/blob/main/app/baseline_calculator.go"
click node_regime "https://github.com/nofendian17/stockbit-haka-haki/blob/main/app/correlation_analyzer.go"
click node_signalgen "https://github.com/nofendian17/stockbit-haka-haki/blob/main/app/signal_tracker_gen.go"
click node_filter "https://github.com/nofendian17/stockbit-haka-haki/blob/main/app/signal_filter.go"
click node_risk "https://github.com/nofendian17/stockbit-haka-haki/blob/main/app/exit_strategy.go"
click node_tracker "https://github.com/nofendian17/stockbit-haka-haki/blob/main/app/signal_tracker.go"
click node_llm "https://github.com/nofendian17/stockbit-haka-haki/blob/main/llm/client.go"
click node_repo "https://github.com/nofendian17/stockbit-haka-haki/blob/main/database/repository.go"
click node_signalrepo "https://github.com/nofendian17/stockbit-haka-haki/blob/main/database/signals/repository.go"
click node_store "https://github.com/nofendian17/stockbit-haka-haki/blob/main/database/connection.go"
click node_cache "https://github.com/nofendian17/stockbit-haka-haki/blob/main/cache/redis.go"
click node_api "https://github.com/nofendian17/stockbit-haka-haki/blob/main/api/server.go"
click node_broker "https://github.com/nofendian17/stockbit-haka-haki/blob/main/realtime/broker.go"
click node_webhook "https://github.com/nofendian17/stockbit-haka-haki/blob/main/notifications/webhook_manager.go"
click node_frontend "https://github.com/nofendian17/stockbit-haka-haki/blob/main/public/js/app.js"
click node_strategyui "https://github.com/nofendian17/stockbit-haka-haki/blob/main/public/js/strategy-manager.js"

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_app,node_auth,node_ws,node_dispatch,node_tradehandler,node_browser toneBlue
class node_whale,node_baseline,node_regime,node_signalgen,node_filter,node_risk,node_tracker,node_llm toneAmber
class node_repo,node_signalrepo,node_store,node_cache,node_destinations toneMint
class node_api,node_broker,node_webhook,node_frontend,node_strategyui toneRose
class node_stockbit,node_llmservice toneIndigo
```

## Components

### Live Ingestion

- [App Orchestrator](https://github.com/nofendian17/stockbit-haka-haki/blob/main/app/app.go): `app/app.go`
- [Authentication](https://github.com/nofendian17/stockbit-haka-haki/blob/main/auth/manager.go): `auth/manager.go`
- [Feed Connection](https://github.com/nofendian17/stockbit-haka-haki/blob/main/websocket/manager.go): `websocket/manager.go`
- [Message Dispatch](https://github.com/nofendian17/stockbit-haka-haki/blob/main/handlers/manager.go): `handlers/manager.go`
- [Trade Handler](https://github.com/nofendian17/stockbit-haka-haki/blob/main/handlers/running_trade.go): `handlers/running_trade.go`

### Market Analysis

- [Whale Detection](https://github.com/nofendian17/stockbit-haka-haki/blob/main/app/whale_followup_tracker.go): `app/whale_followup_tracker.go`
- [Baseline Analysis](https://github.com/nofendian17/stockbit-haka-haki/blob/main/app/baseline_calculator.go): `app/baseline_calculator.go`
- [Regime Analysis](https://github.com/nofendian17/stockbit-haka-haki/blob/main/app/correlation_analyzer.go): `app/correlation_analyzer.go`
- [Signal Generation](https://github.com/nofendian17/stockbit-haka-haki/blob/main/app/signal_tracker_gen.go): `app/signal_tracker_gen.go`
- [Signal Filtering](https://github.com/nofendian17/stockbit-haka-haki/blob/main/app/signal_filter.go): `app/signal_filter.go`
- [Exit Strategy](https://github.com/nofendian17/stockbit-haka-haki/blob/main/app/exit_strategy.go): `app/exit_strategy.go`
- [Signal Tracking](https://github.com/nofendian17/stockbit-haka-haki/blob/main/app/signal_tracker.go): `app/signal_tracker.go`
- [LLM Client](https://github.com/nofendian17/stockbit-haka-haki/blob/main/llm/client.go): `llm/client.go`

### State and History

- [Repository Facade](https://github.com/nofendian17/stockbit-haka-haki/blob/main/database/repository.go): `database/repository.go`
- [Signal Repository](https://github.com/nofendian17/stockbit-haka-haki/blob/main/database/signals/repository.go): `database/signals/repository.go`
- [TimescaleDB](https://github.com/nofendian17/stockbit-haka-haki/blob/main/database/connection.go): `database/connection.go`
- [Redis Cache](https://github.com/nofendian17/stockbit-haka-haki/blob/main/cache/redis.go): `cache/redis.go`

### API and Delivery

- [HTTP API](https://github.com/nofendian17/stockbit-haka-haki/blob/main/api/server.go): `api/server.go`
- [Realtime Broker](https://github.com/nofendian17/stockbit-haka-haki/blob/main/realtime/broker.go): `realtime/broker.go`
- [Webhook Manager](https://github.com/nofendian17/stockbit-haka-haki/blob/main/notifications/webhook_manager.go): `notifications/webhook_manager.go`
- [Dashboard UI](https://github.com/nofendian17/stockbit-haka-haki/blob/main/public/js/app.js): `public/js/app.js`
- [Strategy UI](https://github.com/nofendian17/stockbit-haka-haki/blob/main/public/js/strategy-manager.js): `public/js/strategy-manager.js`

### Other components

- **Stockbit Feed**
- **LLM Service**
- **Webhook Destinations**
- **Dashboard User**

## Connections

- App Orchestrator → Authentication: initializes
- App Orchestrator → Feed Connection: connects feed
- Authentication → Feed Connection: provides tokens
- Stockbit Feed → Feed Connection: streams messages
- App Orchestrator → Message Dispatch: routes messages
- Feed Connection → App Orchestrator: returns messages
- Message Dispatch → Trade Handler: dispatches trades
- Trade Handler → Repository Facade: persists market data
- Trade Handler → Realtime Broker: broadcasts updates
- App Orchestrator → Baseline Analysis: starts calculator
- App Orchestrator → Whale Detection: starts follow-up
- App Orchestrator → Signal Tracking: starts tracker
- Baseline Analysis → Repository Facade: stores baselines
- Whale Detection → Repository Facade: records alerts
- Signal Generation → Signal Filtering: filters signals
- Signal Filtering → Exit Strategy: sets trade levels
- Signal Tracking → Signal Generation: generates signals
- Signal Tracking → Repository Facade: tracks outcomes
- Signal Generation → LLM Client: requests insights
- LLM Client → LLM Service: calls completion API
- Repository Facade → Signal Repository: delegates signal data
- Signal Repository → TimescaleDB: reads and writes
- Repository Facade → TimescaleDB: reads and writes
- HTTP API → Repository Facade: queries analytics
- HTTP API → LLM Client: requests analysis
- HTTP API → Realtime Broker: serves event stream
- Realtime Broker → Dashboard UI: streams updates
- Dashboard User → Dashboard UI: uses dashboard
- Dashboard UI → HTTP API: requests data
- Strategy UI → HTTP API: fetches signals
- App Orchestrator → HTTP API: starts server
- Whale Detection → Webhook Manager: sends alerts
- Webhook Manager → Repository Facade: loads webhooks
- Webhook Manager → Redis Cache: caches webhooks
- Webhook Manager → Webhook Destinations: delivers alerts
