Live Updates

TDLib updates are normalized inside the owner runtime and then published as live `chat_update` payloads.

Flow: Live Updates

Summary

TDLib updates are normalized inside the owner runtime and then published as live chat_update payloads.

Sequence

sequenceDiagram participant TG as TDLib participant OWNER as AccountSessionRuntime participant QUEUE as UpdateQueueProcessor participant SVC as UpdateRuntimeService participant NORM as UpdateNormalizer participant CACHE as DialogCache participant LIVE as publish_live_payload_sync participant WS as TDLibListChatsConsumer TG-->>OWNER: update* OWNER->>QUEUE: enqueue_from_thread QUEUE->>SVC: handle_update(update, userbot) SVC->>NORM: normalize_update NORM-->>SVC: normalized payload + parsed message SVC->>CACHE: append / replace projection state SVC->>LIVE: publish payload LIVE-->>WS: rt.* live subject WS-->>Client: chat_update

Files involved

  • backend/tg_client/dialogs/services/update_runtime_service.py
  • backend/tg_client/dialogs/tdlib/normalizers/update_normalizer.py
  • backend/tg_client/dialogs/services/update_queue.py
  • backend/tg_client/dialogs/cache/dialog_cache.py

Ignored update types

The runtime explicitly ignores a subset of TDLib updates in UpdateRuntimeService.IGNORED_UPDATE_TYPES.