Biwave, platform observability dan error tracking buatan Bitech untuk membantu developer memahami kondisi aplikasi

Jam sebelas malam, sebuah pesan masuk ke grup tim: "Aplikasi error, nggak bisa checkout." Tidak ada tangkapan layar, tidak ada langkah reproduksi, hanya keluhan singkat. Developer yang sedang piket membuka laptop, mencoba mengulang langkah pengguna, tapi di perangkatnya semua berjalan normal. Ia lalu masuk ke server, menyusuri file log yang panjangnya ribuan baris, mencari satu petunjuk di antara tumpukan pesan yang tidak berhubungan. Setengah jam berlalu sebelum ia sadar bahwa log yang ia butuhkan ternyata ada di service lain.

Situasi seperti ini akrab bagi hampir semua orang yang pernah menjaga aplikasi production. Masalahnya jarang soal kemampuan menulis kode. Yang sering hilang adalah konteks. Ketika sebuah error terjadi di perangkat pengguna, informasi tentang apa yang sebenarnya rusak sering kali tidak sampai ke tangan developer, atau sampai dalam bentuk yang terlalu berantakan untuk dibaca cepat.

Apa Itu Biwave

Biwave adalah platform observability dan error tracking yang dikembangkan oleh Bitech. Tujuannya sederhana untuk dijelaskan, walau tidak mudah dibangun: memberi developer gambaran yang jelas tentang apa yang terjadi di dalam aplikasi mereka, terutama ketika sesuatu mulai rusak.

Biwave dirancang sebagai satu tempat untuk memantau kesehatan aplikasi, alih-alih membiarkan data tersebar di berbagai server dan file log yang tidak terpusat. Fokus utama Biwave saat ini ada pada pelacakan error lewat modul yang disebut Biwave Trace. Modul inilah yang menangkap setiap exception yang muncul di aplikasi klien, lalu menyajikannya sebagai informasi yang bisa ditindaklanjuti, bukan sekadar tumpukan teks mentah.

Karena Biwave lahir dari Bitech, sebuah tim yang sehari-hari membangun aplikasi untuk klien, kebutuhan yang dijawabnya datang dari pengalaman nyata menjaga sistem orang lain tetap berjalan. Biwave menjadi salah satu produk yang Bitech bangun sendiri, sejalan dengan produk internal lain yang bisa Anda lihat di bagian produk buatan Bitech.

Kenapa Error Aplikasi Sering Sulit Ditemukan

Ada beberapa alasan kenapa menemukan sumber sebuah error terasa seperti mencari jarum di tumpukan jerami.

Yang pertama, error terjadi di lingkungan yang tidak Anda pegang. Aplikasi berjalan di browser, perangkat, dan kondisi jaringan pengguna yang berbeda-beda. Bug yang muncul di ponsel kelas menengah dengan koneksi lambat bisa saja tidak pernah muncul di laptop developer. Tanpa data dari sisi pengguna, Anda hanya bisa menebak.

Yang kedua, log tidak selalu bercerita dengan runtut. Sebuah aplikasi modern biasanya terdiri dari banyak bagian yang saling bicara. Ketika terjadi kegagalan, jejaknya bisa tersebar di beberapa tempat sekaligus. Menyatukan potongan-potongan itu secara manual menghabiskan waktu, dan waktu adalah hal yang paling mahal saat production sedang bermasalah.

Yang ketiga, error yang sama muncul berulang kali dengan wajah yang sedikit berbeda. Satu bug bisa memunculkan ratusan baris pesan yang mirip tapi tidak identik. Kalau semuanya diperlakukan sebagai kejadian terpisah, Anda kehilangan gambaran mana masalah yang benar-benar sering terjadi dan mana yang cuma muncul sekali.

Bagaimana Biwave Membantu Developer Memahami Masalah

Perubahan paling terasa dari memakai alat observability adalah pergeseran cara kerja, dari menebak-nebak menjadi membaca data. Ketika error terjadi, Biwave menangkapnya langsung dari aplikasi klien lewat SDK yang dipasang di sisi aplikasi, lalu mengirimkan detailnya ke server Biwave untuk diolah. Developer tidak perlu lagi masuk ke server satu per satu untuk mencari tahu apa yang salah.

SDK yang dipasang di aplikasi bersifat terbuka, jadi tim developer bisa memeriksa sendiri kode apa yang berjalan dan data apa yang dikirim. Ini penting untuk membangun kepercayaan, karena Anda memasang sesuatu yang ikut membaca kondisi aplikasi Anda. Setiap proyek yang Anda daftarkan di Biwave mendapat kunci koneksi unik yang aman ditaruh di sisi klien, karena kunci itu hanya punya izin untuk mengirim data, bukan membacanya.

Setelah data masuk, di sinilah Biwave mulai bekerja merapikan hal yang biasanya berantakan.

Kemampuan Utama Biwave Saat Ini

Inti dari Biwave hari ini adalah Biwave Trace, mesin pelacakan error yang menangani beberapa hal penting sekaligus.

Pengelompokan Error yang Cerdas

Alih-alih menampilkan setiap kejadian error sebagai baris baru, Biwave mengelompokkan pesan error yang identik ke dalam satu entitas masalah, yang disebut Issue. Kalau bug yang sama terjadi seribu kali, Anda tidak akan melihat seribu baris. Anda melihat satu Issue dengan penghitung yang menunjukkan sudah berapa kali kejadian itu berulang. Cara ini membuat Anda langsung tahu masalah mana yang paling sering mengganggu pengguna.

Detail Masalah dan Stack Trace

Untuk setiap Issue, Biwave menyimpan pesan error lengkap beserta stack trace, yaitu urutan baris kode yang membawa aplikasi sampai ke titik kegagalan. Di sampingnya ada metadata pendukung seperti jenis browser, sistem operasi, dan nama environment tempat error terjadi, misalnya production atau staging. Konteks semacam ini yang biasanya paling sulit dikumpulkan secara manual, dan justru paling menentukan saat Anda mencoba memahami kenapa sesuatu rusak.

Alur Kerja Penanganan

Menemukan error hanyalah separuh pekerjaan. Biwave memberi setiap Issue status yang bisa diubah developer menjadi Open, In Progress, Resolved, atau Ignored. Dengan begitu, sebuah tim bisa melihat mana masalah yang sedang ditangani, mana yang sudah beres, dan mana yang sengaja diabaikan karena tidak relevan. Pelacakan error jadi bagian dari alur kerja, bukan sekadar daftar peringatan yang menumpuk.

Notifikasi Real Time

Biwave bisa dihubungkan ke kanal komunikasi tim seperti Telegram atau Discord melalui webhook. Begitu ada error baru yang kritis muncul di production, notifikasi terkirim ke kanal tersebut hampir seketika. Tim tidak perlu menunggu laporan dari pengguna untuk tahu ada yang tidak beres, dan sering kali sudah bisa mulai memperbaiki sebelum keluhan pertama masuk.

Perlu disampaikan dengan jujur bahwa Biwave dirancang untuk tumbuh lebih luas dari sekadar pelacakan error. Arah pengembangannya mencakup manajemen log terpusat, perekaman sesi untuk merekonstruksi bug di sisi frontend, serta pemantauan performa aplikasi. Bagian-bagian itu masih dalam pengembangan bertahap. Yang sudah menjadi fokus dan tersedia sebagai inti platform saat ini adalah pelacakan error lewat Biwave Trace.

Menelusuri Satu Error dari Awal sampai Ketemu

Supaya lebih terbayang, mari kita ikuti perjalanan satu error dari awal.

Seorang pengguna gagal menyelesaikan pembayaran di aplikasi. Di sisi mereka, tombol hanya berputar lalu berhenti tanpa pesan yang jelas. SDK Biwave yang terpasang di aplikasi menangkap exception yang terjadi di balik layar dan mengirim detailnya ke server Biwave, lengkap dengan stack trace dan informasi perangkat yang dipakai.

Beberapa detik kemudian, sebuah notifikasi masuk ke channel Discord tim engineering. Isinya menunjukkan ada error baru di environment production pada proyek yang bersangkutan. Developer yang sedang bertugas membuka Biwave dan menemukan bahwa error ini sudah tergabung dalam satu Issue, dan ternyata sudah terjadi belasan kali dalam satu jam terakhir pada pengguna dengan browser tertentu.

Dari stack trace, ia bisa melihat bahwa kegagalan bermula dari sebuah fungsi yang memanggil layanan pembayaran tanpa menangani kasus ketika respons kosong. Metadata memperlihatkan bahwa masalah hanya muncul di satu jenis browser, sebuah petunjuk yang tadinya mustahil ditebak dari keluhan singkat pengguna. Ia mengubah status Issue menjadi In Progress, memperbaiki penanganan kasus tersebut, lalu menandainya Resolved setelah rilis berikutnya. Yang tadinya butuh setengah malam menyusuri log kini selesai dalam hitungan menit karena konteksnya sudah lengkap sejak awal.

Siapa yang Cocok Memakai Biwave

Biwave paling terasa manfaatnya bagi siapa pun yang bertanggung jawab menjaga aplikasi tetap berjalan. Seorang backend atau frontend engineer mendapat konteks langsung tentang di mana dan kenapa kode mereka gagal. DevOps engineer bisa memantau kesehatan aplikasi di berbagai environment tanpa harus membuka server secara manual. Seorang technical lead memperoleh gambaran yang valid tentang masalah mana yang paling sering muncul, sehingga bisa menentukan prioritas berdasarkan data, bukan asumsi.

Skala tim tidak harus besar. Startup dan software house yang menangani beberapa proyek sekaligus justru sering paling terbantu, karena mereka perlu memantau banyak aplikasi tanpa menambah beban operasional yang berat. Begitu juga pemilik aplikasi yang ingin tahu kondisi sistemnya secara jujur, tanpa harus menunggu penggunanya yang menyampaikan lebih dulu bahwa ada yang rusak.

Menutup dengan Konteks yang Lebih Jelas

Bug tidak akan pernah hilang sepenuhnya dari pekerjaan membangun perangkat lunak. Yang bisa berubah adalah seberapa cepat dan seberapa tenang Anda menghadapinya. Perbedaan antara menghabiskan satu malam menebak-nebak dengan menemukan akar masalah dalam beberapa menit sering kali terletak pada satu hal sederhana, yaitu apakah Anda punya konteks yang cukup saat error terjadi.

Kalau tim Anda sedang mencari cara untuk berhenti bekerja dalam gelap setiap kali aplikasi bermasalah, Biwave dibangun tepat untuk kebutuhan itu. Biwave masih terus dikembangkan oleh tim Bitech, dan kami senang mengobrol dengan developer atau pemilik aplikasi yang tertarik mencobanya lebih awal. Silakan hubungi tim Bitech kalau Anda ingin melihat lebih dekat bagaimana Biwave bisa membantu Anda memahami kondisi aplikasi Anda sendiri.