PlatformWebMobile
Signal, a Real-Time Telemetry Platform
A typed frontend SDK and event pipeline that gave Binance's global KYC funnels real-time visibility, cutting incident diagnosis from days to minutes.
- Role
- Senior Frontend Engineer
- Period
- 2025–present
- Stack
- TypeScript · Mini Program · BFF · Kafka · Flink · ClickHouse · Grafana
The problem
Millions of people in 100+ countries went through identity verification, and some of them quietly dropped out. When a vendor integration broke, nobody saw it: we were reading fragmented server logs by hand, and a diagnosis took one to three days. Every day of that is real users who could not finish onboarding.
The approach
- A small, typed SDK. One TypeScript tracker collected the same user-action data on every screen, across web, mobile and Mini Program, so events meant the same thing everywhere.
- Throttling with a safety valve. The SDK queues events and flushes every 3 seconds or at 10 events, whichever comes first. One request per click starves the browser's network threads; holding events longer risks losing them when the tab closes. On page unload it uses
navigator.sendBeacon. - A BFF that validates. Batches hit a Backend for Frontend that checks the schema against the TypeScript definitions, sanity-checks timestamps, strips unexpected fields and PII, and attaches session metadata plus the backend's verdict (passed, rejected, pending review). Comparing that verdict with what the UI showed exposed UI-to-backend state mismatches.
- Kafka, Flink, ClickHouse, Grafana. Kafka absorbs global traffic spikes, Flink processes events in real time, ClickHouse stores them (columnar storage answers aggregations over billions of high-cardinality events in milliseconds, where row stores crawl) and Grafana shows the funnels.
- Quiet failure handling. If the pipeline is down, the SDK keeps up to 100 events in
localStorageand a passive circuit breaker pauses sending. It does not ping the server to check health; it waits for the next successful response.
The result
Time to detect an incident fell from 24–72 hours to under 5 minutes. For a funnel where a broken vendor step means thousands of failed onboardings, that is the difference between a note in a postmortem and a fix the same morning.