Chapter Four
Server Room
POV: Erga
“Tiga minggu,” kata Pak Gunawan.
Senin sore, sesi teknis pertama setelah kick-off. Ruang rapatnya lebih kecil, kopinya lebih pahit, dan jumlah orangnya tinggal sepertiga. Pak Gunawan duduk di ujung meja dengan kedua tangan terlipat di atas map biru setebal kamus.
“Untuk audit sistem sebesar ini, tiga minggu itu minimal, Pak Erga. Arsitekturnya delapan tahun. Ada empat puluh dua layanan. Ada modul yang dokumentasinya ditulis orang yang sudah resign. Saya tidak bilang ini untuk mempersulit. Saya bilang ini karena saya yang membangunnya.”
Aku mengangguk. Dia tidak salah. Delapan tahun adalah waktu yang panjang untuk sebuah sistem. Cukup untuk menumpuk lapisan demi lapisan keputusan yang masing-masing masuk akal pada zamannya, lalu bersama-sama menjadi sesuatu yang tidak masuk akal sama sekali.
“Boleh saya coba dulu, Pak?”
“Coba apa?”
“Baca semuanya. Kalau dalam dua hari saya belum bisa menjelaskan bagaimana sistem ini bernapas, saya ikut jadwal Bapak.”
Pak Gunawan menatapku lama. Lalu dia tersenyum. Senyum orang tua yang sudah melihat banyak konsultan muda datang dan pergi.
“Silakan,” katanya, lalu menggeser map biru itu ke arahku. “Selamat membaca.”
Di sisi lain meja, Yoga, junior developer yang selalu membawa dua gelas kopi, mengangkat tangan setengah.
“Pak Erga, kalau nanti ada perbaikan kecil yang udah siap hari Jumat, boleh langsung deploy?”
“Nggak.”
“Kenapa, Pak?”
“Kita nggak deploy hari Jumat.” Aku membuka map biru itu. “Kalau rusak, orang yang benerin kehilangan akhir pekannya. Orang yang kehilangan akhir pekan bikin kesalahan hari Senin. Dan kesalahan hari Senin biasanya lebih mahal dari kesalahan hari Jumat.”
Yoga menulis kalimat itu di buku catatannya, huruf per huruf, seperti mencatat ayat.
Nayara memberi tim Zogo empat meja di lantai 21, di pojok dekat jendela, persis bersebelahan dengan tim product. Andre bilang itu keberuntungan. Aku tidak berkomentar. Dari mejaku, aku bisa melihat seluruh lantai tanpa perlu memutar kepala, dan itu masalahnya. Aku tidak perlu memutar kepala untuk tahu kapan Bella Larasati lewat.
Aku tahu karena lantai itu berubah setiap kali dia lewat.
Tidak ada yang dramatis. Hanya hal-hal kecil. Obrolan di meja sebelah berhenti di tengah kalimat. Seorang laki-laki dari tim finance yang sedang berjalan ke pantry tiba-tiba mengubah arah, pura-pura baru ingat harus ke printer. Satpam lantai yang biasanya duduk dengan kaki di atas kursi langsung menurunkan kakinya dan merapikan seragam. Kemarin pagi, dia menyapa Bella dengan “Selamat pagi, Bu Bella,” lalu menyapa tong sampah di sebelahnya dengan “Selamat pagi” juga, karena lupa berhenti.
Aku tidak melihat wajahnya. Aku melihat satpam itu. Itu sudah cukup.
Aku membaca sistem Nayara+ selama dua puluh jam, dibagi dua hari.
Bukan dokumentasinya. Dokumentasi adalah apa yang orang pikir sistemnya lakukan. Aku membaca log, konfigurasi, jadwal tugas, dan alur data. Aku membaca apa yang sistem itu benar-benar lakukan setiap detik, setiap jam, setiap malam, saat tidak ada yang melihat.
Sistem, seperti orang, jujur saat tidak ada yang melihat.
Selasa pukul 16.40, aku menemukan sesuatu yang tidak cocok.
Setiap malam, pukul 02.00, sebuah tugas terjadwal menghitung poin loyalty dari transaksi hari sebelumnya dan menambahkannya ke saldo pelanggan. Tugas biasa. Setiap sistem loyalty punya tugas seperti itu. Tapi di log database, aku melihat ada dua baris tulis untuk setiap transaksi tertentu, dengan selisih waktu sebelas detik. Tidak semua transaksi. Hanya transaksi dari kategori mitra, yang poinnya dihitung lewat jalur lama.
Dua penulisan. Sebelas detik terpisah.
Aku mencari di semua server cloud. Hanya ada satu tugas terjadwal dengan nama itu.
Berarti penulisan yang kedua datang dari tempat yang tidak ada di cloud.
“Pak Darmawan,” kataku lewat telepon internal. “Nayara masih punya server fisik?”
“Masih. Di lantai sembilan. Ruang server lama. Sebagian besar sudah dipindah ke cloud tahun lalu, tapi ada beberapa yang… yah, belum ada yang berani mematikan.” Dia terdiam. “Kenapa, Pak Erga? Ada masalah?”
“Belum tahu, Pak. Saya boleh ke sana?”
“Boleh. Minta akses ke tim product, kuncinya dipegang Bella.”
Tentu saja.
“Aku ikut,” kata Bella, lima menit kemudian, sudah berdiri di depan mejaku dengan kartu akses di tangan.
“Saya cuma perlu kartunya.”
“Kartunya nempel di aku.”
“Bisa dilepas.”
“Bisa. Tapi aku PIC product, dan aku mau lihat jantungnya Nayara.” Dia memiringkan kepala. “Lagian, kamu nggak tahu jalannya. Lantai sembilan itu labirin.”
Lantai sembilan bukan labirin. Lift turun, keluar, belok kiri, ujung koridor. Tapi Bella berjalan di depanku dengan langkah cepat seolah dia pemandu wisata di candi kuno, dan aku mengikutinya karena, secara teknis, kartunya memang menempel padanya.
Ruang server lama berpintu kaca buram dengan stiker yang sudah pudar: AREA TERBATAS. Bella menempelkan kartunya. Pintu terbuka, dan udara dingin menyambut kami seperti tamparan halus.
Delapan belas derajat. Aku tahu tanpa perlu melihat termometer di dinding. Deretan rak server berdengung pelan, lampu-lampu kecil hijau dan kuning berkedip dalam ritme yang sama sekali tidak beraturan. Bau debu, logam, dan plastik hangat.
Bella memeluk lengannya sendiri. Dia memakai blus tipis tanpa lengan dan blazer yang tertinggal di kursinya di lantai 21.
“Dingin banget,” katanya.
“Delapan belas derajat.”
“Kamu nggak mau nawarin jaket?”
Aku berjalan ke rak ketiga, membaca label satu per satu. “Delapan belas derajat itu standar ruang server.”
“Aku nggak nanya standarnya,” katanya dari belakangku. “Aku nanya kamunya.”
Aku berhenti di depan rak keempat. Masih membelakanginya.
“Kalau aku kasih jaket,” kataku, “kamu bakal balikin?”
Hening dua detik.
“Nggak,” katanya jujur.
“Makanya.”
Aku mendengarnya tertawa. Suara pendek, kaget, seperti tidak menduga aku akan membalas. Suara itu memantul di antara rak-rak server yang dingin, dan untuk sesaat ruangan itu terasa sedikit kurang dingin.
Aku tidak menoleh. Aku sedang menatap satu server kecil di rak paling bawah. Kotak abu-abu dengan stiker kuning yang tulisannya ditulis tangan dengan spidol hitam:
JANGAN DIMATIKAN — 2019
Lampunya menyala hijau. Hidup. Diam-diam, lima tahun, di ruangan yang semua orang kira sudah kosong.
Aku berlutut, membuka laptop, menyambungkan kabel konsol. Tiga perintah. Lalu aku melihatnya.
Tugas terjadwal. Nama yang sama persis dengan yang di cloud. Jam yang sama, 02.00. Hanya lebih lambat sebelas detik, karena jam server ini tidak pernah disinkronkan.
“Ketemu,” gumamku.
“Apa?” Bella berjongkok di sebelahku. Terlalu dekat. Aku bisa merasakan dinginnya ruangan berkurang di sisi kiriku. “Apa yang ketemu?”
“Di tahun 2019, ada yang menambahkan server ini sebagai cadangan. Tugas penghitung poinnya di-copy ke sini, jaga-jaga kalau server utama mati. Tapi waktu sistemnya pindah ke cloud, nggak ada yang ingat mematikan yang ini. Jadi setiap malam jam dua, poin untuk transaksi mitra dihitung dua kali. Sekali di cloud. Sekali di sini.”
Bella terdiam. Aku melihat angka-angka bekerja di kepalanya. Dia product lead. Dia tahu nilai satu poin.
“Berapa lama?” tanyanya pelan.
“Sejak migrasi cloud. Kira-kira dua puluh bulan.”
“Berapa… totalnya?”
“Aku perlu hitung pasti. Tapi perkiraanku,” aku menunjuk layar, “sekitar tiga koma dua miliar setahun.”
Bella berdiri terlalu cepat. Kakinya menyenggol gulungan kabel di lantai, lalu tubuhnya miring ke arah rak yang ujungnya tajam.
Tanganku bergerak sebelum aku berpikir. Aku menangkap pergelangan tangannya dan menariknya menjauh dari rak, ke arahku. Dia berhenti setengah langkah di depanku, cukup dekat sehingga aku bisa merasakan dia menahan napas.
Aku melepaskan tangannya.
“Hati-hati. Kabel.”
Bella menunduk, melihat pergelangan tangannya, lalu mengangkat wajah.
“Pegangan tangan pertama kita,” katanya, “di server room.”
“Itu pergelangan.”
“Detail.”
Aku kembali menatap laptop. Aku tidak ingat kapan terakhir kali aku mengetik perintah yang sama tiga kali karena salah ketik.
Rabu pagi, pukul 08.15, lift di lobi Nayara Tower terbuka dan Raka Harsono keluar bersama Sheila.
Aku sedang berdiri di depan meja resepsionis, menunggu kartu akses permanenku. Tidak ada tempat untuk menghindar. Lobi itu lebar, terang, dan jujur seperti log server.
“Pak Erga!” Raka tersenyum lebar, berjalan mendekat, tangannya sudah terulur. “Pagi-pagi sudah di sini. Pak Darmawan bilang Bapak semalam lembur di lantai sembilan.”
“Pagi, Pak Raka.”
“Kenalkan, ini tunangan saya. Sheila. Kami mau ke vendor katering, jadi dia mampir menjemput.”
Sheila tersenyum. Versi senyum untuk orang asing. Dia mengulurkan tangan.
“Salam kenal, Mas Erga.”
Aku menjabatnya. Tangannya dingin, seperti selalu. Dulu dia selalu memasukkan tangannya ke saku jaketku karena kedinginan. Aku melepaskan jabatan itu tepat pada detik yang sopan.
“Salam kenal.”
Ponsel Raka berdering. Dia melihat layar, meminta maaf dengan isyarat tangan, dan menjauh lima langkah untuk menjawab.
Lima langkah. Cukup untuk senyum Sheila luntur.
“Jangan bikin masalah, Ga,” katanya pelan, tanpa menggerakkan bibir lebih dari perlu. Matanya tetap ke arah Raka, tersenyum untuknya dari jauh. “Aku serius. Ini hidupku sekarang.”
Aku memandangnya. Tiga tahun aku membayangkan apa yang akan kukatakan kalau hari ini datang. Kalimat panjang. Kalimat marah. Kalimat pedih yang sudah kupoles berulang kali di kamar mandi.
Tidak ada satu pun yang keluar.
“Selamat, ya,” kataku.
Hanya itu. Nadanya sama dengan nada yang kupakai untuk menyapa resepsionis.
Sesuatu retak di wajahnya. Sebentar saja. Seperti dia menyiapkan tameng untuk serangan yang tidak datang, dan tidak tahu harus melakukan apa dengan tameng itu.
Raka kembali. “Maaf, maaf. Yuk, Sayang.” Dia menepuk bahuku. “Sukses, Pak Erga.”
Mereka pergi. Pintu kaca berputar dan menelan mereka.
Resepsionis menyodorkan kartu aksesku. Aku menerimanya, mengucapkan terima kasih, dan berjalan ke lift. Di dalam lift yang kosong, di antara lantai satu dan lantai dua puluh satu, kepalaku mulai menghitung sendiri, tanpa izin.
Lima bulan dari Kamis malam. Aku tahu tanggal pastinya. Andre, dalam serangan rasa bersalahnya, sudah menemukannya di unggahan Instagram Sheila dan mengirimnya padaku, lalu langsung menarik pesannya. Terlambat. Aku sudah membacanya.
Seratus empat puluh tujuh hari.
Aku tidak tahu kenapa aku menghitungnya. Aku tidak peduli pada tanggal itu. Tapi angka itu tetap duduk di kepalaku seperti tugas terjadwal yang lupa dimatikan.
Rabu pukul 10.00, aku mempresentasikan temuan audit dua hari di ruang rapat yang sama dengan hari Senin.
Aku tidak memakai tiga puluh dua slide. Aku memakai tujuh. Slide pertama adalah foto server abu-abu dengan stiker kuning bertuliskan JANGAN DIMATIKAN — 2019.
Aku menjelaskan tugas terjadwal ganda itu dalam tiga menit. Lalu aku menjelaskan empat masalah lain yang kutemukan sambil membaca: dua layanan yang saling memanggil dalam lingkaran, satu tabel database tanpa indeks yang memperlambat setiap pencarian produk, dan satu sertifikat keamanan yang akan kedaluwarsa dalam sembilan hari dan tidak ada yang tahu.
Slide ketujuh berisi satu angka. Perkiraan kebocoran poin selama dua puluh bulan terakhir.
Pak Darmawan membacanya, melepas kacamata, mengelapnya, memakainya lagi, lalu membacanya sekali lagi.
“Ini… miliar?” tanyanya.
“Miliar, Pak.”
“Dengan huruf M?”
“M, Pak.”
Pak Darmawan menutup mulut dengan tangan. Dari balik tangannya terdengar suara kecil, antara tertawa dan menangis.
Aku melihat ke Pak Gunawan. Dia sedang menatap foto server di layar, lama sekali. Mungkin dia ingat siapa yang menempelkan stiker kuning itu. Mungkin dia sendiri.
“Pak Gunawan,” kataku. “Saya tidak menyalahkan tim Bapak. Server itu dipasang dengan niat baik, sebagai cadangan. Itu keputusan yang masuk akal di tahun 2019. Yang terlewat hanya satu hal kecil waktu migrasi. Itu bisa terjadi pada siapa pun.”
Pak Gunawan tidak menjawab. Dia tidak bicara lagi sampai rapat selesai. Tapi waktu semua orang berdiri, dia berjalan melewatiku, berhenti setengah langkah, dan menepuk map biru di depanku sekali. Seperti orang tua yang mengetuk pintu kamar anaknya untuk bilang dia tidak marah lagi.
Pukul 13.20, aku kembali ke meja dengan kotak makan siang dan menemukan Yoga berdiri di balik pilar dengan ponsel di tangan, wajahnya panik seperti tertangkap basah.
“Pak! Eh. Pak. Siang, Pak.”
“Siang.”
Dari sudut mata, aku melihat layar ponselnya sebelum dia sempat menyembunyikannya. Grup WhatsApp dengan foto profil yang sangat mencurigakan, yaitu foto diriku dari samping saat presentasi tadi pagi. Nama grupnya:
Fanclub Pak Architect 🏛️
“Itu apa, Yog?”
“Grup… kerja, Pak.”
“Isinya?”
“Diskusi… teknis, Pak.”
Ponselnya bergetar. Notifikasi masuk di bagian atas layar.
Pak Darmawan: Yoga, saya dengar ada grup baru. Saya boleh masuk?
Yoga menatap layar itu. Lalu menatapku. Lalu menatap layar lagi.
“Pak,” katanya dengan suara orang yang menyerah pada nasib. “Pak Darmawan minta join.”
Aku duduk, membuka kotak makan siang, dan tidak berkata apa-apa. Tidak ada gunanya. Dalam dua hari di Nayara, aku sudah belajar satu hal: sistem di sini boleh bocor, tapi gosipnya tidak pernah down.
Dari arah meja product, aku merasakan seseorang memperhatikanku. Aku tidak perlu menoleh. Satpam lantai baru saja menurunkan kakinya dari kursi.
Laptopku berbunyi. Notifikasi NayaraDesk.
Tiket #003
Judul: Pergelangan tangan user masih kerasa dingin sejak kemarin.
Lokasi kejadian: Lantai 9, rak keempat.
Dugaan penyebab: Ditarik seseorang terlalu cepat, dilepas terlalu cepat juga.
Assignee: erga.mahardika@zogotech.co.id
Aku menatap tiket itu. Aku bisa menutupnya dengan satu klik. Aku bisa mengabaikannya. Aku punya empat masalah sistem yang harus diselesaikan dan satu sertifikat keamanan yang tinggal sembilan hari.
Aku mengetik satu komentar, lalu mengubah statusnya.
Status: DUPLICATE
Komentar: Duplikat dari Tiket #001.
Dari meja product, terdengar suara kursi yang didorong terlalu keras, lalu tawa tertahan yang tidak berhasil ditahan.
- 1 Server yang Katanya Down
- 2 Seminggu Sebelum Akad
- 3 Pak Architect
- 4 Server Room reading
- 5 Lima Menit
- 6 Won’t Fix
- 7 Payung
- 8 Tanggal di Undangan
- 9 Oke. Satu-Satu
- 10 Dia yang Pergi Seminggu Sebelum Akad
- 11 Jangan Bilang Mas Raka
- 12 Empat Puluh Menit
- 13 Serbet
- 14 Di Bawah Meja
- 15 Setelah Meja Makan
- 16 Cutover
- 17 Versi Sheila
- 18 Tolong Jauhi Adikku
- 19 Hampir
- 20 Kita Berhenti di Sini
- 21 Lift
- 22 Hari Gajian
- 23 Fitting
- 24 Runbook
- 25 Aku yang Nggak Diam
- 26 Sama-Sama Benar
- 27 Satu Jengkal
- 28 H-10
- 29 H-8
- 30 H-7
- 31 Malam yang Sama
- 32 Klub H-7
- 33 Resolved
- 34 Pacar Senior Architect
- 35 Hari Kamis
- 36 Sheila Datang Lagi
- 37 Lima Menit?
- 38 Request: Seumur Hidup
- 39 H-7, Lagi
- 40 Tanpa Tanggal Kadaluarsa
- 41 Epilog 1: Malam yang Tidak Dihitung
- 42 Epilog 2: Pagi Pertama