38 lines
1.7 KiB
Markdown
38 lines
1.7 KiB
Markdown
# Trade App PG Migration TODO
|
|
|
|
Cel: trzymać `trade app` wyłącznie na danych z naszego Postgresa (`raw` / `derived`), bez zależności od legacy
|
|
agregatów `dlob_l2_latest`, `dlob_stats_latest`, `dlob_depth_bps_latest`, `dlob_slippage_latest`.
|
|
|
|
## Stan docelowy
|
|
|
|
- wykresy zostają na `trade-api /v1/chart`
|
|
- orderbook i KPI DLOB czytają `dlob_hot_snapshot_latest`, `dlob_hot_derived_latest` albo `dlob_all_derived_latest`
|
|
- depth bands i slippage są liczone w frontendzie z tego samego L2 z Postgresa
|
|
- po drugiej fazie można wyciąć z app-path `dlob-server`, `dlob-worker`, `dlob-depth-worker`, `dlob-slippage-worker`
|
|
- ścieżka `hot` zostaje dla execution/debug, nie dla głównego widoku `trade app`
|
|
|
|
## Plan
|
|
|
|
- [x] Faza 1: przepiąć `useDlobStats` i `useDlobL2` na `raw` / `derived` z filtrem `is_indicative=false`
|
|
- [x] Faza 2: przepiąć `useDlobDepthBands` i `useDlobSlippage` off legacy tabel i liczyć je bezpośrednio z orderbooka z Postgresa
|
|
- [ ] Faza 3: jeśli będzie potrzebne, przenieść te same obliczenia do backendu / ts writerów jako cache lub time series
|
|
- [ ] Faza 4: usunąć z app-path zależność od `dlob-server` i workerów legacy po potwierdzeniu zgodności UI
|
|
|
|
## Mapowanie fazy 1
|
|
|
|
- `best_bid_price` -> `bestBid`
|
|
- `best_ask_price` -> `bestAsk`
|
|
- `mid_price` -> `mid`
|
|
- `spread_quote` -> `spreadAbs`
|
|
- `spread_bps` -> `spreadBps`
|
|
- `depth_bid_quote` -> `depthBidUsd`
|
|
- `depth_ask_quote` -> `depthAskUsd`
|
|
- `bids_norm` / `asks_norm` albo `bids` / `asks` -> orderbook L2
|
|
|
|
## Uwaga
|
|
|
|
- UI powinno czytać tylko `is_indicative=false`
|
|
- `hot` ma preferować raw (`dlob_hot_snapshot_latest`) tam, gdzie potrzebna jest pełna drabinka
|
|
- `all` ma czytać `dlob_all_derived_latest`
|
|
- frontend nie powinien zależeć od legacy tabel agregatowych
|