Staging & commit
Setiap editan di DynoTable melalui staging area sebelum menyentuh DynamoDB. Anggap saja seperti staging area git dengan kait pengaman: editan, pembuatan, dan penghapusan terkumpul sebagai diff yang dapat ditinjau, lalu dikirim sebagai hanya saat Anda commit.
Tidak ada yang ditulis ke tabel Anda sampai Anda menyatakannya.
Cara kerjanya
Setiap tabel punya staging area-nya sendiri, dibagikan di setiap tampilan tabel itu. Saat Anda menyimpan sebuah editan item, membuat baris, atau menghapus satu, perubahan itu mendarat di panel sebagai diff per-atribut — atribut yang ditambah, dihapus, dan diubah ditampilkan berdampingan. Baris yang terdampak di grid diberi warna sesuai operasi:
- hijau — item baru (create)
- oranye — pembaruan (sel yang berubah disorot)
- merah — penghapusan (dicoret)
Buka tabel yang sama di dua tab dan keduanya menampilkan perubahan tertunda yang sama; tutup lalu buka kembali sebuah tab dan stage-nya masih ada. Menutup tab tak pernah membuang perubahan staged Anda.
Toggle panel dengan ⌘⇧D. Seret tepinya untuk mengubah ukuran.

Meninjau perubahan
Setiap kartu diff menunjukkan persis apa yang akan berubah:
- Skalar dirender lama → baru dengan penyorotan merah/hijau.
- String panjang menampilkan diff tingkat-kata secara inline.
- Map dan List dirender sebagai JSON yang dicetak rapi (seluruh-atribut di v1).
Gunakan Reject per-atribut sebuah kartu untuk mengembalikan satu atribut ke nilai aslinya. Tolak setiap atribut dan seluruh perubahan dibuang.
Commit
Commit untuk menulis perubahan staged Anda ke DynamoDB:
- Commit N mengirim setiap perubahan staged untuk tabel itu — di seluruh tab-nya.
- Commit just this mengirim satu perubahan dari kartunya.
Commit dikirim sebagai batch TransactWriteItems dengan kondisi
optimistic-locking: sebuah update hanya berhasil jika atributnya masih memegang
nilai yang Anda mulai, sebuah create hanya berhasil jika item belum ada, dan
sebuah delete hanya berhasil jika item masih ada. Staging besar secara otomatis
dipecah agar tetap dalam batas transaksi DynamoDB.
Chord simpan dari editor juga berlaku di sini:
- ⌘S — stage (tanpa commit)
- ⌘⇧S — simpan & commit
- ⌘⇧X — buang semua perubahan staged (dengan konfirmasi)
Dari pemilihan grid Anda bisa men-stage penghapusan tanpa membuka editor:
- ⌘⌫ — stage penghapusan baris yang dipilih
- ⌘⇧⌫ — hapus & commit baris yang dipilih
Konflik
Karena commit memakai optimistic locking, sebuah perubahan yang di-commit orang lain setelah Anda men-stage milik Anda akan terdeteksi alih-alih diam-diam ditimpa. Kartu menampilkan banner inline:
- Drift — item remote berubah di bawah Anda. Rebase onto remote menyegarkan baseline agar Anda bisa meninjau ulang, atau Abort perubahannya.
- Remote deleted — item tidak lagi ada. Batalkan perubahannya.
- Network unavailable — commit tidak bisa menjangkau DynamoDB. Retry atau batalkan.
Sebuah commit berhenti pada batch pertama yang gagal — batch yang berhasil lebih awal tetap tertulis, sisanya tidak dicoba, dan kegagalannya muncul sebagai konflik untuk diselesaikan.
Apa yang memblokir commit
Beberapa status bersifat read-only dan bisa stage tapi tidak commit — paling nyata adalah lisensi yang kedaluwarsa atau read-only. Staging tetap berfungsi; commit terbuka lagi begitu aplikasi kembali ke status aktif.


