DBOS Transact , sistem orkestrasi aliran kerja baharu yang dibina di atas PostgreSQL , sedang menjana perbincangan dalam komuniti pembangun mengenai dakwaan teknikal dan cabaran pelaksanaan praktikalnya. Walaupun sistem ini berjanji untuk memudahkan pengurusan aliran kerja tahan lama melalui checkpoint yang disokong pangkalan data, pembangun sedang membangkitkan persoalan penting mengenai jaminan teras dan kerumitan operasinya.
Sokongan Bahasa DBOS:
- Disokong pada masa ini: Go, Python, TypeScript
- Dirancang: Java
- Seni bina: Integrasi berasaskan perpustakaan (berbanding kluster luaran)
- Pangkalan data: Titik semak bersandarkan PostgreSQL
Mempersoalkan Dakwaan Pemprosesan Exactly-Once
Perdebatan teknikal yang paling ketara berpusat di sekitar dakwaan DBOS mengenai pemprosesan acara exactly-once. Ahli komuniti telah menunjukkan cabaran asas dalam sistem teragih: kemustahilan untuk benar-benar menjamin pelaksanaan exactly-once tanpa pertimbangan reka bentuk yang teliti. Isu teras terletak pada masa apabila operasi ditandakan sebagai lengkap berbanding apabila ia benar-benar selesai dilaksanakan.
Ini kedengaran...mustahil? Jika anda mempunyai beberapa langkah dalam aliran kerja anda, sama ada anda merekodkannya sebagai lengkap apabila anda memulakan, tetapi kemudian anda boleh ranap separuh jalan dan apabila anda memulihkan aliran kerja ia kini tidak diproses, atau merekodkannya sebagai lengkap selepas anda selesai, tetapi kemudian anda boleh ranap di antara melengkapkan dan merekod dan apabila anda memulihkan anda menjalankan langkah itu dua kali.
Pembangun DBOS telah menjelaskan bahawa dakwaan exactly-once mereka khusus terpakai kepada permulaan aliran kerja sebagai respons kepada acara, bukan pelaksanaan langkah individu. Mereka mengakui bahawa langkah individu mungkin perlu dimulakan semula jika ia ranap semasa pelaksanaan, memerlukan pembangun melaksanakan operasi idempoten.
Operasi idempoten: Fungsi yang boleh dipanggil beberapa kali dengan hasil yang sama, memastikan konsistensi sistem walaupun dilaksanakan berulang kali.
Batasan Teknikal Utama:
- Langkah aliran kerja individu memerlukan reka bentuk idempoten
- Pemprosesan "tepat sekali" hanya terpakai untuk permulaan aliran kerja, bukan pelaksanaan langkah
- Langkah mungkin dimulakan semula jika ia ranap semasa pelaksanaan
- Tanggungjawab pembangun untuk pelaksanaan langkah yang tahan kerosakan kekal
Tanggungjawab Pembangun untuk Toleransi Kerosakan
Kebimbangan utama yang muncul daripada perbincangan komuniti ialah walaupun automasi DBOS untuk checkpoint dan pemulihan, pembangun masih menanggung tanggungjawab yang ketara untuk memastikan kebolehpercayaan sistem. Beban untuk mencipta sub-langkah idempoten kekal dengan pengaturcara, tanpa mengira pengurusan keadaan peringkat aliran kerja yang disediakan oleh rangka kerja.
Realiti ini mencabar beberapa janji kesederhanaan yang dibuat oleh rangka kerja pelaksanaan tahan lama. Walaupun DBOS mengautomasikan pemulihan di peringkat aliran kerja, setiap langkah individu masih mesti direka bentuk untuk mengendalikan potensi restart dengan anggun.
Kelebihan Model Operasi
Walaupun terdapat kebimbangan teknikal, DBOS memang menawarkan faedah operasi yang ketara berbanding sistem yang telah ditetapkan seperti Temporal atau Airflow . Sistem ini berfungsi sebagai perpustakaan yang berintegrasi terus ke dalam aplikasi sedia ada, bukannya memerlukan infrastruktur kluster yang berasingan. Pendekatan ini mengurangkan kerumitan penggunaan dan overhed operasi dengan ketara untuk pasukan pembangunan.
Seni bina berasaskan PostgreSQL juga menyediakan alat dan keupayaan pemantauan yang biasa untuk pasukan yang sudah menggunakan pangkalan data hubungan, berpotensi menurunkan keluk pembelajaran untuk penggunaan.
Kedudukan Pasaran dan Persoalan Pertumbuhan
Beberapa ahli komuniti telah mencatatkan kekerapan siaran berkaitan DBOS berbanding pangkalan pengguna sistem yang kelihatan, menimbulkan persoalan mengenai pemasaran berbanding penggunaan organik. Walau bagaimanapun, wakil syarikat menunjuk kepada penggunaan pengeluaran yang semakin meningkat dan kisah kejayaan pelanggan sebagai bukti daya tarikan pasaran yang tulen.
Sistem ini kini menyokong Go , Python , dan TypeScript , dengan sokongan Java dirancang. Pendekatan berbilang bahasa ini menunjukkan cita-cita melampaui penggunaan khusus, walaupun penerimaan pasaran muktamad masih belum dapat ditentukan.
DBOS mewakili pendekatan menarik untuk memudahkan orkestrasi aliran kerja tahan lama, tetapi perbincangan komuniti mendedahkan bahawa cabaran sistem teragih asas berterusan. Walaupun seni bina berasaskan PostgreSQL menawarkan kelebihan operasi, pembangun masih mesti menavigasi kerumitan membina sistem yang benar-benar toleran kerosakan.
Rujukan: DBOS Transact: Lightweight Durable Workflow Orchestration with Postgres