Skip to content

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