Materi
Toko kopi kini punya tiga kasir dan satu aplikasi pesanan daring yang menulis ke berkas SQLite yang sama. Setiap penjualan mengurangi stok dan menambah baris penjualan; setiap malam kas ditutup: penjualan yang belum ditutup dijumlahkan ke tabel rekap lalu ditandai ditutup. Sejak kasir bertambah, rekap kadang lebih kecil daripada penjualan yang ditandai ditutup.
Misi ini menggabungkan seluruh kelas. Perubahan yang harus terjadi bersama berada dalam satu transaksi. Transaksi yang membaca lalu menulis dibuka dengan BEGIN IMMEDIATE supaya konflik dengan penulis lain muncul di awal dan bisa dilaporkan sebagai sibuk. Syarat stok ditulis di WHERE dan hasilnya dibaca dari rowcount. Test menjalankan koneksi kedua di tengah fungsimu, lalu memeriksa kondisi awal, hasil berhasil, hasil gagal atau sibuk, dan konsistensi akhir: total rekap sama dengan total penjualan yang ditandai ditutup, dan stok berkurang tepat sebanyak penjualan.