Langsung ke konten
Clinford Jordano Valencia
Semua proyek
PlatformWebMobile

Signal, Platform Telemetri Real-Time

SDK frontend bertipe dan pipeline event yang memberi funnel KYC global Binance visibilitas real-time, memangkas diagnosis insiden dari hitungan hari menjadi menit.

Peran
Senior Frontend Engineer
Periode
2025–sekarang
Stack
TypeScript · Mini Program · BFF · Kafka · Flink · ClickHouse · Grafana

Masalahnya

Jutaan orang di lebih dari 100 negara menjalani verifikasi identitas, dan sebagian berhenti di tengah jalan tanpa terdeteksi. Saat integrasi vendor rusak, tidak ada yang melihatnya: kami membaca log server yang terpecah-pecah secara manual, dan satu diagnosis memakan waktu satu sampai tiga hari. Setiap hari itu berarti pengguna nyata yang gagal menyelesaikan onboarding.

Pendekatannya

  • SDK kecil yang bertipe. Satu tracker TypeScript mengumpulkan data aksi pengguna yang sama di setiap layar, di web, mobile, dan Mini Program, sehingga event punya arti yang sama di mana pun.
  • Throttling dengan katup pengaman. SDK mengantrekan event dan mengirimnya setiap 3 detik atau setiap 10 event, mana yang lebih dulu. Satu request per klik menghabiskan thread jaringan browser; menahan event terlalu lama berisiko kehilangannya saat tab ditutup. Saat halaman ditutup, SDK memakai navigator.sendBeacon.
  • BFF yang memvalidasi. Batch masuk ke Backend for Frontend yang memeriksa skema terhadap definisi TypeScript, mengecek kewajaran timestamp, membuang field tak terduga dan PII, lalu menambahkan metadata sesi serta keputusan backend (lolos, ditolak, menunggu tinjauan). Membandingkan keputusan itu dengan apa yang ditampilkan UI mengungkap ketidaksesuaian state antara UI dan backend.
  • Kafka, Flink, ClickHouse, Grafana. Kafka menyerap lonjakan trafik global, Flink memproses event secara real-time, ClickHouse menyimpannya (penyimpanan kolumnar menjawab agregasi atas miliaran event berkardinalitas tinggi dalam milidetik, sementara row store merayap) dan Grafana menampilkan funnel-nya.
  • Penanganan kegagalan yang senyap. Jika pipeline mati, SDK menyimpan hingga 100 event di localStorage dan circuit breaker pasif menghentikan pengiriman. SDK tidak mem-ping server untuk mengecek kesehatan; ia menunggu respons sukses berikutnya.

Hasilnya

Waktu untuk mendeteksi insiden turun dari 24–72 jam menjadi di bawah 5 menit. Untuk funnel di mana satu langkah vendor yang rusak berarti ribuan onboarding gagal, itulah bedanya antara catatan di postmortem dan perbaikan di pagi yang sama.