Di Grails, pola apa yang direkomendasikan untuk menulis catatan audit untuk tindakan tertentu terlepas dari bagaimana transaksi tersebut berakhir? Contoh: Upaya pendaftaran pengguna online yang mungkin gagal karena sejumlah alasan.
Asumsi dasar, logika bisnis terbatas pada metode layanan transaksional.
Ketidakpastian yang mendasari: Haruskah saya membatalkan transaksi dengan memasukkan RuntimeException ke dalam layanan? Panduan Grails menyiratkan demikian, tetapi Burt Beckwith pernah berkata (sambil tertawa, saya yakin) ini seperti memukul diri sendiri dengan palu untuk mendapatkan perhatian.
Mengingat logika bertele-tele dengan beberapa pemeriksaan, akan lebih mudah untuk memberikan pengecualian ketika konflik terdeteksi. Keseluruhan transaksi harus dibatalkan, namun catatan audit harus tetap ditulis.
Catatan Ada beberapa plugin Grails audit, tetapi plugin tersebut mencatat perubahan pada objek domain yang dikomit.