თანამედროვე პროგრამული უზრუნველყოფის შემუშავებისას, მდგრადი სამუშაო პროცესები (durable workflows) გადამწყვეტ როლს თამაშობს. მათი მთავარი არსი მარტივია: პროგრამის მიმდინარეობა რეგულარულად ინახება მონაცემთა ბაზაში, რაც ავარიული გათიშვის შემთხვევაში, პროცესის ბოლო დაფიქსირებული ნაბიჯიდან აღდგენის საშუალებას იძლევა.

ტრადიციული მოდელის სირთულე

დღემდე, ამ პროცესებს ძირითადად გარე ორკესტრატორები, მაგალითად Temporal, Airflow ან AWS Step Functions მართავდნენ. ამ მოდელში არსებობს ცენტრალური სერვერი, რომელიც დავალებებს რიგში აყენებს და მუშაკებს (workers) ანაწილებს.

თუმცა, DBOS-ის ექსპერტები მიიჩნევენ, რომ გარე ორკესტრატორების გამოყენება ფუნდამენტურად ზედმეტად რთული და არასაჭიროა. თუ მდგრადი სამუშაო პროცესების არსი მონაცემთა ბაზაში ინფორმაციის შენახვაა, მაშინ რატომ გვჭირდება დამატებითი, ცალკე ორკესტრატორი?

Postgres, როგორც ალტერნატივა

Postgres-ის გამოყენება ორკესტრატორის ფუნქციით ამცირებს სისტემის სირთულეს. ამ მოდელში აპლიკაციის სერვერები პირდაპირ კომუნიკაციას ამყარებენ მონაცემთა ბაზასთან. ისინი დამოუკიდებლად იღებენ დავალებებს, ასრულებენ მათ და თავადვე ინახავენ შედეგებს Postgres-ის ცხრილებში.

ამ მიდგომას რამდენიმე უპირატესობა აქვს:

  • სკალარობა: სისტემა ჰორიზონტალურად ფართოვდება დამატებითი სერვერების ჩართვით.
  • ხელმისაწვდომობა: Postgres-ის დადასტურებული მაღალი ხელმისაწვდომობის მექანიზმები პირდაპირ ვრცელდება სამუშაო პროცესებზეც.
  • მონიტორინგი: სამუშაო პროცესების დაკვირვება და ანალიზი შესაძლებელია უბრალო SQL მოთხოვნებით.

რატომ არის ეს მნიშვნელოვანი?

ტრადიციული ორკესტრატორები ხშირად ხდებიან სისტემის „სუსტი რგოლი“ (single point of failure). თუ ორკესტრატორი ითიშება, მთელი აპლიკაცია წყვეტს ფუნქციონირებას. გარდა ამისა, ორკესტრატორს აქვს წვდომა მგრძნობიარე მონაცემებზე, რაც დამატებით უსაფრთხოების რისკებს ქმნის.

Postgres-ზე დაფუძნებული არქიტექტურა ამ პრობლემას ხსნის. მონაცემები არ ტოვებს ბაზას, რაც ამცირებს უსაფრთხოების ზედაპირს და ამარტივებს ინფრასტრუქტურის მართვას. დეველოპერებს აღარ სჭირდებათ დამატებითი, რთული სისტემების მხარდაჭერა, როდესაც მათ უკვე აქვთ საიმედო მონაცემთა ბაზა ხელთ.

დასკვნის სახით, ტექნოლოგიური სამყარო უფრო მარტივი და ეფექტური გადაწყვეტილებებისკენ მიდის. Postgres-ის გამოყენება ორკესტრაციისთვის არის ნაბიჯი იმ მიმართულებით, სადაც ინფრასტრუქტურა არა დამატებით სირთულეს, არამედ გამარტივებას ემსახურება.