Contoh aplikasi ini mendemonstrasikan sistem pemenuhan pesanan sederhana, yang dipecah menjadi beberapa komponen independen (seperti layanan mikro ).
Repositori berisi kode untuk beberapa alternatif implementasi agar khalayak luas dapat memahami kode dan membandingkan alternatif. Tabel di bawah mencantumkan alternatif-alternatif tersebut.
Contoh ini mengikuti pembelajaran dari Domain Driven Design (DDD) , Event Driven Architecture (EDA), dan Microservices (µS) dan dirancang untuk memberi Anda akses langsung ke topik-topik ini.
Catatan: Kode ditulis untuk dijelaskan. Oleh karena itu, saya lebih menyukai kode yang disederhanakan atau menyalin & menempelkan kode siap produksi dengan solusi umum. Jangan pertimbangkan praktik terbaik gaya pengkodean! Ini ditulis khusus agar menjadi kode yang mudah dijelaskan .
Anda dapat menemukan informasi lebih lanjut tentang konsep-konsep tersebut dalam buku Otomatisasi Proses Praktis bersama O'Reilly.
Ritel yang mengalir mensimulasikan sistem pemenuhan pesanan yang sangat mudah:
Pilihan paling mendasar adalah memilih mekanisme komunikasi :
Setelah mekanisme komunikasi, pilihan selanjutnya adalah mesin alur kerja :
dan bahasa pemrograman :
Ritel yang mengalir mensimulasikan sistem pemenuhan pesanan yang sangat mudah. Logika bisnis dipisahkan ke dalam layanan yang ditunjukkan di atas (ditampilkan sebagai peta konteks).
Beberapa layanan bersifat jangka panjang - misalnya: layanan pembayaran meminta pelanggan untuk memperbarui kartu kredit yang sudah habis masa berlakunya. Mesin alur kerja digunakan untuk mempertahankan dan mengontrol interaksi yang berjalan lama ini.
Perhatikan bahwa mesin status ( atau mesin alur kerja dalam hal ini ) adalah perpustakaan yang digunakan dalam satu layanan. Jika layanan yang berbeda memerlukan mesin alur kerja, mereka dapat menjalankan mesin apa pun yang mereka inginkan. Dengan cara ini merupakan keputusan tim yang otonom apakah mereka ingin menggunakan kerangka kerja, dan yang mana: