Sobes.tech
Senior

Saga — сізге ол не үшін керек, сіз немен жұмыс істейсіз?

sobes.tech AI

AI-дан жауап

Saga — бұл тарату транзакцияларын басқару үлгісі, ол микросервистік архитектурада деректердің келісімділігін қамтамасыз ету үшін глобальды блоктауларды қолданбайды.

Негізгі идея: үлкен транзакцияны бірнеше жергілікті транзакцияларға бөлу, олардың әрқайсысында қайтару жағдайында компенсирлеуші операция бар.

Мен Saga-ны процестерді үйлестіру үшін қолдандым, мысалы, тапсырыс беру кезінде, мұнда бірнеше сервисті жаңарту керек (қойма, төлемдер, жеткізу). Егер бір операция сәтсіз болса, алдыңғы қадамдарды жою үшін компенсирлеуші транзакция іске қосылады.

Мен қолданатындар:

  • Saga оркестрациясы (орталық басқарушы, ол қадамдар мен компенсирлеуші транзакцияларды басқарады)
  • Saga хореографиясы (әрбір сервис оқиғаларға өздігінен жауап береді және өз қадамдарын іске қосады)

Go тілінде мен жиі Saga-ны оқиғалар мен хабарламалар кезектерін пайдалана отырып жүзеге асырамын (мысалы, Kafka, NATS), сондай-ақ транзакциялардың күйін басқару және уақытша шектеулер үшін кітапханаларды қолданамын.