Jarak antara dua kanal tidak ditutup dengan kecepatan, melainkan dengan satu kumpulan ketersediaan kamar yang dibaca semua kanal, bukan beberapa salinan yang masing-masing percaya dirinya benar.
Hampir tidak ada booking ganda yang disebabkan oleh sistem yang lambat. Penyebabnya adalah kamar yang sama dicatat di beberapa tempat sekaligus, dan masing-masing tempat mempercayai salinannya sendiri. Selama kebenaran itu ada dalam lebih dari satu versi, selalu ada momen di mana dua versi itu tidak sepakat — dan kecepatan hanya memperpendek momen itu, tidak pernah menghilangkannya.
Bayangkan kamar terakhir untuk malam Sabtu, terdaftar di dua kanal. Dua tamu memesan hanya berselang beberapa detik. Setiap kanal memeriksa salinan ketersediaannya sendiri, melihat kamar masih kosong, dan menerima pesanan. Pada saat perintah penutupan sampai ke kanal kedua, reservasi kedua sudah terbentuk.
Tidak ada yang melakukan kesalahan. Kedua kanal bekerja sesuai rancangannya. Kegagalannya bersifat struktural: dua sistem sama-sama diizinkan mempercayai bahwa mereka memiliki kamar yang sama.
Menghubungkan kalender dengan iCal adalah langkah pertama paling umum, dan itu masuk akal. Tapi iCal adalah format yang bersifat pull: pihak lain mengambil file kalender Anda sesuai jadwalnya sendiri, biasanya diukur dalam puluhan menit, dan terkadang lebih lama saat platform sedang sibuk. Tidak ada yang instan di dalamnya, dan tidak ada yang dijamin.
Berpindah dari iCal ke koneksi nyata memperpendek jendela waktu itu secara drastis, dari menit menjadi detik. Itu peningkatan yang nyata dan menghilangkan sebagian besar insiden. Tapi itu tidak menghilangkan kategorinya, karena desain berbasis push tetap berarti ada beberapa salinan data yang eksis dan baru direkonsiliasi setelah kejadian.
Ada juga kegagalan yang lebih halus yang tidak bisa disentuh oleh kecepatan. Beberapa kanal menerapkan penyesuaian otomatis mereka sendiri pada ketersediaan — misalnya menambahkan kembali satu kamar saat ada pembatalan. Jika sistem Anda menulis angka absolut pada saat yang sama ketika kanal itu sedang menerapkan perubahannya sendiri, dua operasi itu bisa terjadi dalam urutan apa pun, dan hasilnya terkadang lebih tinggi dari kenyataan.
Perbaikan struktural adalah berhenti menyimpan banyak salinan. Ketersediaan dihitung dari satu kumpulan kamar nyata, dan setiap kanal hanya menjadi jendela pandang ke kumpulan itu, bukan pemilik sebagian darinya. Saat reservasi masuk dari mana pun, kumpulan itu berkurang, dan setiap kanal diperbarui agar sesuai dengan angka yang baru.
Poin terakhir ini lebih penting dari yang terlihat. Sistem yang tidak bisa membaca kondisi terkini sebuah kanal hanya punya dua pilihan: menebak, atau mengatakan yang sebenarnya. Menebak ke arah "mungkin masih tersedia" justru itulah cara satu kamar terjual dua kali. Menolak untuk menebak adalah yang membuat perbedaan antara sistem yang biasanya benar dan sistem yang benar-benar bisa Anda andalkan saat kamar penuh.