Manga anchadan buyon qiziq bo'lyotgan narsa bu verified, reproducible events.
Masala oson ko'rinadi eventlarni storega yozamiz ularning irarxiyasi bo'yicha reproduce qilsak bo'ladi yani shunchaki olib kelamiz va execute qilamiz.
Ammo savollar juda ko'p masalan eventlar concurrent bo'lsachi ? ev2 -> oneof(ev3 | ev4) yoki bo'lmasam cheksiz irarxiya... Bu odatda kattaroq stream processingda sodir bo'ladigan hodisa, masalan kafkadan kelgan streamlar. Bu yerda event larni reproduce qilish doyim ham o'xshamasligi mumkin shunchaki katta sequence bor aynan Xni reproduce qilishga hammasini qayta qiladigan holatga duch kelish mumkin. Masalan har bir chunk ketmaketligi o'ziga hos unikal bo'lsa.
Undan tashqari vaqt faktori ham mavjud. Masalan bazi eventlar expire bo'lishi mumkin. Aytaylik verification code 1 daqiqada expire bo'ladi. Buni retry qilganingizda esa xato bo'lishi mumkin.
Ammo mavzu va bir chekkadan boshlashga arziydi. Xozircha manabunaqa plan qilyabman. Event source qilaman, bu narsani qisqaroq iohlasak. Biror statega nisbatdan sodir bo'lgan barcha actionlar. Kegin manashu actionlarni snapshot qilib saqlayman. Nu yuqorida aytilganidek va ularni bog'lab qo'yaman next, previus qilib.
Masalan qandaydir processing flow yakunlanganida sodir bo'lgan barcha actionlar record qilingan bo'ladi. Eng muhimi actiondan kegin state ham store qilinadi.
Kegin esa qandaydir spec yozaman umumiy flow qanday bo'lishi kerakligi haqida. Spec esa shu Statemachine temporal logic yani Allow + TLA deb tushunak bo'ladi. Hali aniq bilmayman ))
Endi event loglarni spec bilan mos ekanini tekshirish qoldi. Yani event loglar butun jarayonda sodir bo'lgan hodisalar. Bizni spec esa aynan jarayon qanday bo'lishining modeli endi qanaqadir checker bor, modelni o'qiydi va event loglarni o'qiydi va solishtiriadi jarayon modelga mos keladimi yo'qmi. Agar mos kelmasa demak tizimda nimadir xato.
Post #4277
510
- 🔥 2