Pelancaran terbaru DBOS Transact telah mencetuskan perbincangan yang ketara dalam komuniti pembangun mengenai pendekatan perlaksanaan tahan lasak berasaskan PostgreSQL. Ketika pembangun meneroka pustaka TypeScript yang ringan ini, beberapa persoalan utama telah timbul mengenai keupayaan penskalaan, cabaran pelaksanaan, dan aplikasi dalam dunia sebenar.
Pertimbangan Penskalaan
Kebimbangan utama komuniti tertumpu pada keupayaan PostgreSQL untuk mengendalikan beban kerja bervolum tinggi. Menurut perbincangan, DBOS boleh memproses lebih 10,000 langkah sesaat dengan pelayan pangkalan data yang besar, yang mencukupi untuk kebanyakan kes penggunaan. Bagi beban kerja yang melebihi had ini, pembangun boleh melaksanakan penghirisan atau memisahkan perkhidmatan. Walau bagaimanapun, ini menunjukkan had semula jadi penyelesaian berasaskan PostgreSQL untuk operasi berskala sangat tinggi.
Kelebihan utama menggunakan Postgres ialah: 1. Lebih mudah dari segi seni bina, kerana tiada kebergantungan luaran. 2. Anda mempunyai kawalan penuh terhadap keadaan pelaksanaan, kerana semuanya berada dalam jadual pada pelayan Postgres anda
Ciri-ciri Teknikal Utama:
- Menyokong lebih 10,000 langkah per saat dengan pelayan pangkalan data besar
- Pengurusan transaksi terbina dalam
- Pemulihan aliran kerja automatik
- ORM yang disokong: TypeORM , Drizzle , Knex , Prisma
- Memerlukan hujah langkah dan nilai pemulangan yang boleh diserialisasi dalam format JSON
Cabaran Pelaksanaan
Satu perbincangan penting berkisar tentang pengendalian penversian aliran kerja dan pelaksanaan teragih. Sistem ini menandakan setiap aliran kerja dengan versi kod asalnya, mencadangkan agar aliran kerja diselesaikan menggunakan versi yang sama seperti ketika ia dimulakan. Untuk persediaan teragih, berbilang tika DBOS yang disambungkan ke pangkalan data PostgreSQL yang sama secara automatik membentuk barisan tugas teragih, berkongsi beban kerja yang masuk.
Pengekalan Data dan Pemulihan
Komuniti telah membangkitkan persoalan penting mengenai mekanisme pengekalan dan pemulihan keadaan. DBOS menggunakan penghias untuk menguruskan keadaan pelaksanaan, menyimpan maklumat aliran kerja termasuk status pelaksanaan, input, langkah yang telah selesai, dan output dalam jadual PostgreSQL. Pendekatan ini memastikan pemulihan automatik selepas kerosakan, walaupun ia memerlukan semua argumen langkah dan nilai pemulangan boleh diserialisasikan dalam JSON.
Pertimbangan Integrasi
Pembangun telah mengetengahkan kebimbangan mengenai integrasi sistem luaran dan pengurusan transaksi. Walaupun DBOS sentiasa menggunakan transaksi untuk operasi pangkalan data, interaksi dengan API pihak ketiga memerlukan pertimbangan yang teliti. Sistem ini menyokong pelbagai ORM popular termasuk Drizzle, Knex, dan Prisma, menawarkan fleksibiliti dalam corak interaksi pangkalan data.
Perbincangan mendedahkan bahawa walaupun DBOS Transact menawarkan penyelesaian yang menarik untuk perlaksanaan tahan lasak, pembangun perlu mempertimbangkan dengan teliti kes penggunaan khusus mereka, terutamanya berkaitan dengan skala dan interaksi sistem luaran.
Rujukan: DBOS Transact: A Lightweight Durable Execution Library Built on Postgres