Memversi aturan bisnis untuk alur kerja tanpa merusak catatan
Pelajari cara memversi aturan bisnis dengan pola penyimpanan aman, perilaku historis yang konsisten, dan langkah migrasi bertahap yang praktis untuk alur kerja.

Mengapa mengubah aturan bisa merusak catatan lama
Ketika Anda mengubah aturan workflow, Anda ingin keputusan yang lebih baik ke depan. Masalahnya adalah catatan lama tidak hilang. Mereka dibuka kembali, diaudit, dilaporkan, dan dihitung ulang.
Yang rusak jarang berupa crash yang jelas. Lebih sering, catatan yang sama menghasilkan hasil berbeda hari ini dibandingkan bulan lalu karena dievaluasi dengan logika hari ini.
Penversian aturan menjaga perilaku tetap konsisten: perilaku baru untuk pekerjaan baru, perilaku lama untuk pekerjaan lama. Sebuah catatan harus tetap memakai logika yang berlaku saat dibuat, atau saat keputusan dibuat, meskipun kebijakan berubah kemudian.
Beberapa istilah yang membantu:
- Aturan: keputusan atau perhitungan (misalnya, “auto-approve untuk jumlah di bawah $500”).
- Workflow: langkah-langkah yang memajukan pekerjaan (submit, review, approve, bayar).
- Catatan: item tersimpan yang diproses (pesanan, tiket, klaim).
- Waktu evaluasi: momen aturan diterapkan (saat pengajuan, saat persetujuan, job malam).
Contoh konkret: workflow pengeluaran Anda dulu membolehkan makan hingga $75 tanpa persetujuan manajer. Anda menaikkan batas menjadi $100. Jika laporan lama dievaluasi dengan batas baru, beberapa laporan yang benar-benar sempat naik ke eskalasi sebelumnya kini terlihat “salah” di log audit. Total menurut tipe persetujuan juga bisa bergeser.
Anda bisa mulai kecil dan tetap bisa berkembang nanti. Bahkan pendekatan dasar, seperti menyimpan “rule version 3” pada tiap catatan saat memasuki workflow, mencegah sebagian besar kejutan.
Apa yang dihitung sebagai aturan bisnis di workflow nyata
Aturan bisnis adalah semua keputusan yang dibuat workflow Anda yang memengaruhi langkah selanjutnya, apa yang tercatat, atau apa yang dilihat seseorang. Jika mengubah satu baris logika bisa mengubah hasil untuk kasus nyata, itu layak diberi versi.
Sebagian besar aturan termasuk beberapa kategori: ambang persetujuan, harga dan diskon (termasuk pajak, biaya, pembulatan), pemeriksaan kelayakan (KYC, kredit, wilayah, level paket), routing (antrean, tim, atau vendor mana yang mendapat pekerjaan), dan waktu (SLA, tanggal jatuh tempo, aturan eskalasi).
Satu aturan sering menyentuh lebih dari satu langkah. Bendera “pelanggan VIP” mungkin mengubah jalur persetujuan, memperpendek target waktu respons, dan merutekan tiket ke antrean khusus. Jika Anda hanya memperbarui satu bagian, Anda mendapatkan perilaku yang tidak sinkron: catatan mengatakan VIP, tapi timer eskalasi masih memperlakukannya sebagai standar.
Ketergantungan tersembunyi membuat perubahan aturan menyakitkan. Aturan tidak hanya menggerakkan langkah workflow. Mereka membentuk laporan, audit, dan pesan eksternal. Perubahan kecil pada “kapan kita mengembalikan ongkos kirim” bisa mengubah total keuangan, penjelasan di email pelanggan, dan apa yang diharapkan oleh pemeriksaan kepatuhan beberapa bulan kemudian.
Tim yang berbeda merasakan dampaknya dengan cara berbeda:
- Ops peduli tentang lebih sedikit pengecualian dan perbaikan manual.
- Finance peduli tentang jumlah yang benar dan rekonsiliasi yang bersih.
- Support peduli tentang penjelasan yang konsisten.
- Kepatuhan dan audit peduli tentang membuktikan apa yang dijalankan, kapan, dan mengapa.
Penversian aturan bukan hanya detail teknis. Ini cara Anda menjaga pekerjaan harian tetap konsisten sambil membiarkan workflow berkembang.
Keputusan desain inti yang harus Anda buat
Sebelum menerapkan penversian aturan, putuskan bagaimana sistem akan menjawab satu pertanyaan: “Aturan mana yang harus diterapkan pada catatan ini sekarang?” Jika Anda melewatkan ini, perubahan akan terlihat baik saat pengujian dan gagal nanti pada audit dan kasus tepi.
Tiga pilihan utama:
- Bagaimana Anda memilih versi (disematkan pada catatan, dipilih berdasarkan tanggal, dipilih berdasarkan status).
- Kapan Anda mengevaluasi aturan (saat dibuat, saat diproses, atau keduanya).
- Di mana Anda menyimpan konteks versi (di dalam catatan, di tabel aturan, atau di log event/riwayat).
Waktu adalah bagian yang membingungkan tim. created_at adalah ketika catatan pertama kali ada. processed_at adalah ketika keputusan dibuat, yang mungkin beberapa hari kemudian. Jika Anda memilih versi menggunakan created_at, Anda mempertahankan kebijakan seperti saat permintaan diajukan. Jika Anda memilih menggunakan processed_at, Anda mencerminkan kebijakan saat approver menekan Approve.
Determinisme adalah apa yang membangun kepercayaan. Jika input yang sama bisa menghasilkan output berbeda nanti, Anda tidak bisa menjelaskan hasil masa lalu. Untuk perilaku yang ramah audit, pemilihan versi perlu stabil. Catatan harus membawa cukup konteks sehingga Anda bisa menjalankan ulang evaluasi dan mendapatkan hasil yang sama.
Dalam praktiknya, tim menyimpan kunci aturan yang stabil (misalnya, ExpenseApproval) dan versi terpisah (v1, v2, v3).
Cara menyimpan versi aturan: tiga pola praktis
Jika Anda ingin penversian tanpa kejutan, putuskan apa yang “mengunci” masa lalu: catatan, kalender, atau hasil. Tiga pola ini muncul di sistem nyata.
Pola 1: Sematkan versi ke tiap catatan
Simpan rule_version_id pada objek bisnis (order, klaim, tiket) pada saat aturan pertama kali diterapkan.
Ini model paling sederhana. Saat Anda memeriksa ulang catatan nanti, Anda menjalankan versi yang sama lagi. Audit menjadi jelas karena setiap catatan menunjuk ke aturan persis yang digunakan.
Pola 2: Gunakan tanggal efektif (valid_from / valid_to)
Alih-alih menyematkan versi ke catatan, pilih aturan berdasarkan waktu: “pakai aturan yang aktif saat event terjadi.”
Ini bekerja baik ketika aturan berubah untuk semua orang sekaligus dan momen pemicu jelas (submitted_at, booked_at, policy_start). Bagian sulitnya adalah ketelitian tentang stempel waktu, zona waktu, dan momen mana yang jadi sumber kebenaran.
Pola 3: Ambil snapshot hasil evaluasi (dan input kunci)
Untuk keputusan yang tidak boleh berubah, simpan hasil plus input kunci yang digunakan.
Nanti, Anda bisa menunjukkan persis mengapa keputusan terjadi meskipun logika aturan, mesin aturan, atau model data berubah. Hibrida umum adalah menyimpan rule_version_id untuk keterlacakan dan hanya melakukan snapshot pada keputusan berdampak tinggi.
Perbandingan sederhana:
- Ukuran penyimpanan: snapshot butuh ruang lebih; ID versi dan tanggal kecil.
- Kesederhanaan: ID versi yang disematkan paling mudah; penanggalan efektif butuh stempel waktu yang hati-hati.
- Auditabilitas: snapshot paling kuat; ID versi bekerja jika Anda masih bisa menjalankan logika lama.
- Ketahanan ke depan: snapshot melindungi saat aturan atau kode berubah signifikan.
Pilih opsi paling ringan yang tetap memungkinkan Anda menjelaskan hasil masa lalu dengan percaya diri.
Modelkan riwayat aturan agar Anda bisa menjelaskan hasil masa lalu
Menyunting aturan di tempat terasa sederhana, tapi berisiko. Saat Anda menimpa kondisi atau ambang, Anda kehilangan kemampuan untuk menjawab pertanyaan dasar seperti: “Mengapa pelanggan ini disetujui Maret lalu, tapi ditolak hari ini?” Jika Anda tidak bisa memutar ulang aturan persis yang digunakan, Anda berakhir menebak, dan audit berubah menjadi perdebatan.
Pendekatan yang lebih aman adalah versi append-only. Setiap perubahan membuat record versi baru, dan versi lama tetap dibekukan. Itulah inti penversian: Anda biarkan logika hari ini berjalan maju tanpa menulis ulang kemarin.
Berikan setiap versi status lifecycle yang jelas supaya orang tahu apa yang aman dijalankan:
- Draft: sedang diedit, diuji, ditinjau
- Active: dipakai untuk evaluasi baru
- Retired: tidak lagi dipakai untuk pekerjaan baru, disimpan untuk sejarah
Publikasi harus tindakan terkendali, bukan penyimpanan tidak sengaja. Putuskan siapa yang bisa mengusulkan perubahan, siapa yang harus menyetujuinya, dan siapa yang bisa menjadikan versi Active.
Simpan catatan perubahan dalam bahasa biasa. Pembaca di masa depan harus memahami apa yang berubah tanpa membaca diagram atau kode. Simpan metadata konsisten untuk setiap versi:
- Apa yang berubah (satu kalimat)
- Mengapa berubah (alasan bisnis)
- Siapa yang menyetujui dan kapan
- Tanggal mulai efektif (dan opsional akhir)
- Dampak yang diharapkan (siapa yang akan terpengaruh)
Menjaga perilaku historis konsisten dari waktu ke waktu
Konsistensi historis dimulai dengan janji sederhana: jika Anda mengevaluasi ulang catatan lama sebagaimana keputusan dibuat saat itu, Anda harus mendapatkan hasil yang sama. Janji itu rusak jika aturan membaca data hari ini, memanggil layanan eksternal, atau memicu aksi saat dievaluasi.
Definisikan kontrak evaluasi
Tuliskan apa yang boleh menjadi dependensi aturan (input), apa yang dikembalikan (output), dan apa yang tidak boleh dilakukan (efek samping). Input harus berupa field eksplisit pada kasus, atau snapshot dari field itu, bukan “apa pun yang terlihat di profil pelanggan sekarang.” Output harus kecil dan stabil, seperti “approve/deny,” “approver yang dibutuhkan,” atau “risk score.”
Jaga evaluasi tetap murni. Ia tidak boleh mengirim email, membuat pembayaran, atau memperbarui tabel. Aksi-aksi itu milik langkah workflow yang mengonsumsi keputusan. Pemisahan ini membuat memutar ulang riwayat mungkin tanpa memicu efek dunia nyata.
Untuk mempermudah audit, simpan tiga fakta pada setiap event keputusan:
- stempel waktu evaluasi (kapan aturan dijalankan)
- pengenal versi aturan yang dipilih
- input ternormalisasi yang digunakan (atau penunjuk ke snapshot yang tidak bisa diubah)
Ketika seseorang bertanya “mengapa ini disetujui tahun lalu,” Anda bisa menjawab tanpa menebak.
Tangani input yang hilang atau berubah kemudian
Putuskan dari awal apa yang terjadi jika input yang dibutuhkan hilang. “Anggap false” dan “fail closed” menghasilkan riwayat yang sangat berbeda. Pilih satu kebijakan per aturan dan tetap konsisten di seluruh versi.
Juga putuskan apakah edit kemudian harus mengubah hasil masa lalu. Pendekatan praktis: edit bisa memicu evaluasi baru ke depan, tetapi keputusan masa lalu mempertahankan versi dan input aslinya. Jika pelanggan mengubah alamat setelah pesanan disetujui, Anda mungkin memeriksa ulang fraud untuk pengiriman, tetapi Anda tidak menulis ulang persetujuan awal.
Langkah demi langkah: perkenalkan versi aturan baru dengan aman
Perubahan aturan yang aman dimulai dengan penamaan. Beri setiap aturan kunci yang stabil (mis. pricing.discount.eligibility atau approval.limit.check) yang tidak berubah, lalu tambahkan skema versi yang bisa diurutkan (v1, v2) atau tanggal (2026-01-01). Kunci adalah bagaimana orang berbicara tentang aturan. Versi adalah bagaimana sistem memutuskan apa yang dijalankan.
Jadikan pemilihan versi eksplisit di data Anda. Setiap catatan yang mungkin dievaluasi nanti (order, klaim, persetujuan) harus menyimpan versi yang digunakan, atau menyimpan tanggal efektif yang memetakan ke versi. Tanpa itu, Anda pada akhirnya akan menjalankan ulang catatan di bawah logika baru dan diam-diam mengubah hasilnya.
Terbitkan versi baru berdampingan dengan versi lama. Hindari mengedit versi lama di tempat, bahkan untuk perbaikan kecil.
Rollout yang aman biasanya terlihat seperti ini:
- Tetap gunakan v1 dan tambahkan v2 sebagai versi terpisah di bawah kunci aturan yang sama.
- Rute hanya catatan baru ke v2 (catatan yang ada tetap memegang versi yang tersimpan).
- Pantau rasio persetujuan, jumlah pengecualian, dan hasil tak terduga.
- Buat rollback sebagai perubahan rute (kirim catatan baru kembali ke v1), bukan edit aturan.
- Retire v1 hanya ketika Anda yakin tidak ada catatan terbuka atau yang dapat diproses ulang yang bergantung padanya.
Contoh: jika ambang persetujuan pembelian berubah dari $5.000 menjadi $3.000, rute semua permintaan baru ke v2 sementara permintaan lama tetap pada v1 sehingga jejak audit masih masuk akal.
Strategi migrasi bertahap yang mengurangi risiko
Saat Anda mengubah aturan, risiko terbesar adalah drift diam-diam. Workflow tetap berjalan, tetapi hasil perlahan berhenti sesuai harapan. Rollout bertahap memberi bukti sebelum Anda berkomitmen, dan jalur kembali yang bersih jika sesuatu terlihat salah.
Jalankan aturan baru dan lama berdampingan
Alih-alih mematikan untuk semua orang, biarkan aturan lama sebagai sumber kebenaran sementara jalankan yang baru sebagai simulasi. Mulai dengan sampel kecil dan bandingkan hasil.
Pendekatan sederhana adalah mencatat apa yang aturan baru akan lakukan tanpa membiarkannya menentukan hasil akhir. Untuk 5% approval baru, hitung kedua keputusan dan simpan keputusan lama, keputusan baru, dan kode alasan. Jika tingkat mismatch lebih tinggi dari perkiraan, hentikan rollout dan perbaiki aturan, bukan datanya.
Rute traffic dengan kondisi yang jelas
Gunakan feature flag atau kondisi routing sehingga Anda bisa mengontrol siapa mendapat versi mana. Pilih kondisi yang mudah dijelaskan dan direproduksi nanti. Tanggal efektif, wilayah/unit bisnis, tingkat pelanggan, atau tipe workflow biasanya lebih baik daripada aturan rumit yang tak ada yang bisa jelaskan sebulan kemudian.
Putuskan apa yang akan Anda lakukan tentang backfill. Apakah Anda mengevaluasi ulang catatan lama dengan aturan baru, atau menjaga hasil asli? Dalam kebanyakan kasus, jaga hasil asli untuk audit dan fairness, dan terapkan aturan baru hanya pada event baru. Backfill hanya jika hasil lama jelas salah dan ada persetujuan.
Tulis rencana migrasi singkat: apa yang berubah, siapa yang memverifikasi (ops, finance, compliance), laporan apa yang akan diperiksa, dan cara tepat untuk kembali.
Kesalahan umum yang menyebabkan bug data diam-diam
Sebagian besar perubahan aturan workflow gagal dengan tenang. Tidak ada yang crash, tetapi angka bergeser, pelanggan mendapat email yang salah, atau kasus lama tiba-tiba terlihat “salah” saat dibuka beberapa bulan kemudian.
Penyebab terbesar adalah mengedit versi lama di tempat. Terasa lebih cepat, tapi Anda kehilangan jejak audit dan tidak bisa lagi menjelaskan mengapa keputusan masa lalu terjadi. Perlakukan versi lama sebagai read-only dan buat versi baru bahkan untuk tweak kecil.
Perangkap umum lain adalah mengandalkan tanggal efektif tanpa presisi waktu. Zona waktu, perubahan daylight saving, dan job background yang berjalan terlambat bisa memindahkan catatan ke versi yang salah. Catatan yang dibuat pukul 00:05 di satu wilayah mungkin masih dianggap “kemarin” di wilayah lain.
Polanya lainnya:
- Mengevaluasi ulang catatan masa lalu setelah perubahan aturan tanpa mencatat bahwa Anda menjalankan ulang keputusan (dan versi yang digunakan).
- Mencampur logika aturan dengan override manual tanpa menyimpan siapa yang mengoverride dan mengapa.
- Lupa efek hilir seperti faktur, notifikasi, atau analitik yang bergantung pada hasil asli.
- Memecah idempotensi, sehingga retry mengirim pesan kedua atau membuat biaya ganda.
- Menyimpan hanya “status saat ini” dan kehilangan riwayat event yang menghasilkan status itu.
Contoh sederhana: Anda mengubah ambang persetujuan, lalu job malam menghitung ulang “memerlukan persetujuan” untuk semua order terbuka. Jika Anda tidak menandai order mana yang dihitung ulang, support akan melihat hasil berbeda dari yang dilihat pelanggan minggu lalu.
Daftar periksa cepat sebelum Anda mengubah aturan workflow
Sebelum mengirim perubahan aturan, putuskan bagaimana Anda akan membuktikan apa yang terjadi kemarin dan apa yang harus terjadi besok. Penversian yang baik lebih tentang bisa menjelaskan dan mereproduksi keputusan daripada logika rumit.
Mulai dengan memeriksa bagaimana sebuah catatan “mengingat” keputusan yang diterimanya. Jika order, tiket, atau klaim bisa dievaluasi ulang nanti, ia perlu pointer jelas ke versi yang digunakan pada momen keputusan kunci (persetujuan, harga, routing, kelayakan).
Checklist:
- Simpan versi aturan dan stempel waktu keputusan pada setiap catatan yang melewati titik keputusan kunci.
- Perlakukan aturan sebagai append-only: terbitkan versi baru, biarkan versi lama terbaca, dan retire dengan status eksplisit.
- Buat pelaporan sadar perubahan: filter berdasarkan versi dan tanggal efektif agar metrik tidak mencampur “sebelum” dan “sesudah.”
- Konfirmasi reproduksibilitas: Anda bisa memutar ulang keputusan lama dari input yang tersimpan plus versi yang direferensikan dan mendapatkan hasil yang sama.
- Rencanakan rollback sebagai routing: rute catatan baru kembali ke versi sebelumnya tanpa menulis ulang sejarah.
Satu hal lagi yang menyelamatkan tim nanti adalah kepemilikan. Tetapkan orang bernama (atau grup kecil) yang bertanggung jawab atas persetujuan dan dokumentasi. Tulis apa yang berubah, mengapa berubah, dan catatan mana yang terpengaruh.
Contoh: memperbarui workflow persetujuan tanpa menulis ulang sejarah
Kasus umum adalah refund. Dulu Anda mengharuskan persetujuan manajer untuk refund di atas $200, tapi kebijakan berubah dan sekarang ambang menjadi $150. Masalahnya: Anda masih punya tiket lama yang terbuka, dan Anda perlu keputusan mereka tetap bisa dijelaskan.
Perlakukan logika persetujuan sebagai set aturan yang diberi versi. Tiket baru memakai aturan baru. Tiket yang ada tetap memegang versi yang dipakai saat dibuat.
Berikut bentuk catatan kecil yang bisa Anda simpan pada setiap kasus (atau tiket):
case_id: "R-10482"
created_at: "2026-01-10T09:14:00Z"
rule_version_id: "refund_threshold_v1"
decision: "auto-approved"
Sekarang perilakunya jelas:
- v1: manager approval jika amount > 200
- v2: manager approval jika amount > 150
Jika tiket dibuat minggu lalu dengan rule_version_id = refund_threshold_v1, ia akan tetap dievaluasi menggunakan ambang $200, meskipun diproses hari ini. Tiket yang dibuat setelah rollout mendapat refund_threshold_v2 dan memakai $150.
Rollout bertahap yang bisa ditangani tim support
Rilis v2 tetapi tetapkan dulu ke sebagian kecil tiket baru (satu kanal atau satu tim). Staf support harus melihat dua hal di layar kasus: versi dan penjelasan dalam bahasa biasa (mis. “ambang v1 $200”). Ketika pelanggan bertanya “mengapa ini disetujui,” staf bisa menjawab tanpa menebak.
Apa yang diukur setelah perubahan
Lacak beberapa sinyal untuk memastikan kebijakan berjalan sesuai harapan:
- Rasio persetujuan menurut versi aturan (v1 vs v2)
- Eskalasi dan ukuran antrean manajer
- Pertanyaan audit: seberapa sering seseorang menanyakan “mengapa” dan seberapa cepat Anda bisa menjawabnya
Langkah berikutnya: masukkan penversian ke proses workflow Anda
Mulai sederhana. Tambahkan field rule_version_id (atau workflow_version) ke setiap catatan yang dipengaruhi aturan. Saat aturan berubah, buat versi baru dan tandai versi lama sebagai retired, tetapi jangan pernah menghapusnya. Catatan lama terus menunjuk ke versi yang dipakai saat mereka memasuki workflow atau saat keputusan dibuat.
Agar ini diterapkan, perlakukan perubahan aturan sebagai proses nyata, bukan edit ad-hoc. Registri aturan ringan membantu, bahkan jika dimulai sebagai tabel atau spreadsheet. Lacak pemilik, tujuan, daftar versi dengan catatan perubahan singkat, status (draft/active/retired), dan cakupan (workflow dan tipe catatan yang terpengaruh).
Seiring kompleksitas tumbuh, tambahkan lapisan berikutnya hanya saat diperlukan. Jika orang bertanya, “Apa keputusan pada tanggal itu?”, tambahkan tanggal efektif. Jika auditor bertanya, “Input apa yang dipakai?”, simpan snapshot fakta yang dipakai aturan (field kunci, ambang, daftar approver). Jika perubahan berisiko, wajibkan persetujuan sehingga versi baru tidak bisa live tanpa review.
Jika tim Anda ingin bergerak lebih cepat tanpa kehilangan sejarah, platform tanpa kode bisa membantu. AppMaster (appmaster.io) dirancang untuk membangun aplikasi lengkap dengan logika bisnis, sehingga Anda bisa memodelkan registri aturan, menyimpan ID versi pada catatan, dan mengembangkan workflow sambil menjaga kasus lama terikat pada logika yang awalnya mereka pakai.
FAQ
Penversian aturan memastikan catatan lama mempertahankan logika yang berlaku saat catatan itu dibuat atau saat keputusan diambil. Tanpa itu, membuka kembali atau menghitung ulang sebuah catatan bisa menghasilkan hasil berbeda dari semula, sehingga membingungkan audit dan pelaporan.
Catatan lama tetap dibuka, diaudit, dan dihitung ulang, jadi mereka masih “berjalan” melalui sistem Anda. Jika logika saat ini diterapkan pada kasus historis, input yang sama bisa menghasilkan output berbeda dari sebelumnya, meskipun datanya sendiri tidak berubah.
Versi-kan setiap logika yang bisa mengubah hasil nyata untuk kasus nyata. Contoh umum: ambang persetujuan, perhitungan harga dan pajak, pemeriksaan kelayakan, rute ke tim atau vendor, serta aturan waktu seperti SLA dan eskalasi.
Versi yang dipasang menyimpan rule_version_id pada tiap catatan saat aturan pertama kali diterapkan, dan Anda selalu menjalankan versi yang sama itu nanti. Tanggal efektif memilih versi berdasarkan stempel waktu seperti waktu pengajuan atau waktu keputusan, yang bisa bekerja baik tetapi menuntut penanganan waktu yang sangat tepat.
Jika Anda ingin “kebijakan saat diajukan,” pilih versi berdasarkan kapan catatan dibuat atau diajukan. Jika Anda ingin “kebijakan saat diputuskan,” pilih berdasarkan kapan approver mengambil tindakan; yang penting konsisten dan catat waktu evaluasi agar bisa dijelaskan nanti.
Ambil snapshot hasil evaluasi ketika keputusan tidak boleh berubah kemudian, seperti penetapan harga final, kelayakan, atau penentuan persetujuan. Menyimpan hasil dan input kunci membuat riwayat tetap bisa dijelaskan meskipun logika atau model data berubah.
Jangan menimpa versi lama: perlakukan versi aturan sebagai append-only sehingga versi lama tetap ada. Beri versi status yang jelas seperti draft, active, dan retired, dan buat tindakan “publish” sebagai langkah yang disengaja agar penyuntingan tidak secara tidak sengaja menulis ulang perilaku historis.
Jaga evaluasi aturan tetap “murni”: ia harus mengembalikan keputusan tanpa mengirim email, membebankan kartu, atau memperbarui tabel lain. Langkah-langkah workflow yang mengonsumsi keputusan itulah yang melakukan efek samping, sehingga memutar ulang keputusan lama tidak akan memicu aksi dunia nyata lagi.
Jalankan aturan lama dan baru secara paralel untuk sebagian kecil catatan baru dan catat apa yang akan diputuskan oleh aturan baru tanpa membiarkannya menentukan hasil akhir. Ini memungkinkan Anda mengukur tingkat ketidakcocokan dan memperbaiki aturan sebelum menjadi sumber kebenaran untuk semua orang.
Mulai dengan menyimpan rule_version_id dan stempel waktu keputusan pada catatan yang melewati titik keputusan kunci. Di platform tanpa kode seperti AppMaster (appmaster.io), Anda bisa memodelkan registri aturan, menyimpan konteks versi pada catatan, dan mengembangkan workflow secara visual sambil menjaga kasus lama tetap terkait dengan versi yang dipakai saat itu.


