Adapters (src/fyers_store/adapters/)
Adapters are thin transport layers. They own session and socket lifecycle, enforce rate limits/backoff where applicable, and push parsed WebSocket messages into queues.
REST Adapter (fyers_rest.py)
flowchart TD
REST["FyersSdkRestAdapter<br/>(fyers_rest.py)"]
LIMITER["RateLimiter<br/>(fyers_rest.py)"]
FYERS["FYERS SDK client"]
FAIL_AUTH["AuthError<br/>fail-fast"]
FAIL_ORDER["Unknown Order State<br/>manual reconcile"]
REST --> LIMITER
LIMITER --> REST
REST --> FYERS
REST -.auth failure.-> FAIL_AUTH
REST -.place_order timeout.-> FAIL_ORDER
Data WebSocket Adapter (fyers_ws.py)
flowchart TD
WS["FyersDataWsAdapter<br/>(fyers_ws.py)"]
SUBS["subscription set"]
BATCH["batch(<=100)"]
THROTTLE["cooldown throttle"]
QUEUE["message queue"]
SDK["FYERS SDK socket"]
RECONNECT["reconnect backoff"]
FAIL_AUTH["AuthError<br/>stop reconnect"]
WS --> SUBS
WS --> BATCH
WS --> THROTTLE
WS --> SDK
SDK --> QUEUE
WS --> RECONNECT
SDK -.auth failure.-> FAIL_AUTH