Salah satu keuntungan dari model pemrosesan pesan seperti aktor dan agen adalah bahwa masalah konkurensi tradisional (terutama sinkronisasi negara bersama) tidak lagi menjadi masalah. Aktor dapat menyimpan status pribadi dan memperbaruinya secara bebas tanpa kunci. Kerangka kerja aktor memastikan bahwa hanya satu pesan yang diproses pada satu waktu. Dengan pemrosesan serial, kode dapat ditulis dengan cara bebas kunci.
Dalam contoh Anda pengguna menyimpan formulir, dengan asumsi aktor menyimpan Daftar beberapa data dari setiap formulir, aktor dapat memperbarui daftar tanpa kunci, karena kerangka kerja menjamin bahwa hanya satu formulir yang akan diproses pada satu waktu. Secara tradisional, Anda harus mengunci akses Daftar atau menggunakan daftar bersamaan.
Strategi concurrency adalah masalah yang sedikit berbeda dan masih menjadi tanggung jawab Anda (tanpa strategi menjadi strategi yang paling umum). Untuk sedikit mengubah contoh Anda, misalkan kedua pengguna mencoba memperbarui contoh formulir SAMA sekaligus. Tanpa strategi konkurensi, perubahan seseorang akan menimpa yang lain (mungkin yang terakhir menang). Tidak apa-apa, tetapi paling tidak ini menghasilkan perilaku tak terduga untuk pengguna yang perubahannya ditimpa. Jika mereka melihat formulir yang baru saja mereka ubah, itu akan memiliki nilai yang tidak terduga (dari pengguna lain). Paling buruk (ketika kita tidak hanya berbicara tentang pembaruan formulir, tetapi hal-hal seperti pesanan pengiriman) dapat menyebabkan berbagai jenis kerugian (waktu, pendapatan, dll.).
Menggunakan strategi konkurensi membantu mengidentifikasi kasus-kasus ini dan dapat menyelesaikannya berdasarkan aturan bisnis. Misalnya, Optimistis Concurrency meminta pengguna mengirimkan versi formulir yang sedang diperbarui. Ketika aktor pergi untuk memproses perubahan, ia melihat bahwa pengguna ke-2 berpikir itu memperbarui Versi 5 ketika formulir sebenarnya di Versi 6 karena pembaruan pengguna pertama. Sekarang setidaknya kami dapat memberi tahu pengguna ke-2 bahwa formulir telah berubah sejak mereka mulai mengeditnya. Atau aturan apa pun yang ingin ditegakkan bisnis di sana.
Dalam hal memperbarui formulir, Anda mungkin tidak terlalu peduli tentang concurrency (tergantung, saya kira). Tetapi dalam kasus lain, mungkin merupakan hal yang sangat penting untuk setidaknya dapat memeriksa dan menangani pelanggaran. Anda bahkan mungkin ingin mengabaikan pelanggaran konkurensi, seperti jika pengguna mengubah bagian yang berbeda (untuk melanjutkan analogi formulir). Atau jika perubahan memiliki dampak besar pada bisnis (pesanan besar), Anda ingin menerimanya dan menyelesaikan konflik kecil nanti (mis. Pembaruan info kontak tahunan belum selesai).
Saya percaya Akka memiliki sejumlah dimensi lain seperti bagaimana menangani kegagalan, pengawas, dll. Yang merupakan pertimbangan penting bagi para devops.