αž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž§αž”αž€αžšαžŽαŸαž”αž„αŸ’αžœαž·αž›αžŸαž„αž‡αžΆαž˜αž½αž™ API αž’αžŸαž˜αž€αžΆαž›αž“αŸ…αž›αžΎ Kafka

αžαžΎαž’αŸ’αžœαžΈαž’αžΆαž…αž”αž„αŸ’αžαŸ†αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αžŠαŸαž’αŸ†αžŠαžΌαž…αž‡αžΆ Lamoda αž‡αžΆαž˜αž½αž™αž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸαžšαž›αžΌαž“ αž“αž·αž„αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžŠαŸ‚αž›αž‘αžΆαž€αŸ‹αž‘αž„αž‚αŸ’αž“αžΆαžšαžΆαž”αŸ‹αžŸαž·αž” αžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαžšαž”αžŸαŸ‹αžαŸ’αž›αž½αž“αž™αŸ‰αžΆαž„αžŸαŸ†αžαžΆαž“αŸ‹? αž€αžΆαžšαž›αžΎαž€αž‘αžΉαž€αž…αž·αžαŸ’αžαž’αžΆαž…αž˜αžΆαž“αž—αžΆαž–αžαž»αžŸαž”αŸ’αž›αŸ‚αž€αž‚αŸ’αž“αžΆαž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„αŸ– αž–αžΈαž“αžΈαžαž·αž”αŸ’αž”αž‰αŸ’αž‰αžαŸ’αžαž· αžŠαž›αŸ‹αž€αžΆαžšαž…αž„αŸ‹αž–αž·αžŸαŸ„αž’αž“αŸαžŠαŸ‚αž›αž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž’αŸ’αž“αž€αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ”

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸαŸ‡αž˜αž·αž“αž˜αžΆαž“αž“αŸαž™αžαžΆαž’αŸ’αž“αž€αž˜αž·αž“αž’αžΆαž…αž–αžΉαž„αž•αŸ’αž’αŸ‚αž€αž›αžΎαž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž”αž“αŸ’αžαŸ‚αž˜αž“αŸ„αŸ‡αž‘αŸαŸ” Sergey Zaika αž“αžΉαž„αž”αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž–αžΈαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž’αŸ’αž“αž€αž–αž·αžαž‡αžΆαž’αžΆαž…αžˆαŸ’αž“αŸ‡ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž’αž“αž»αžœαžαŸ’αž API αžŠαŸ‚αž›αž‡αŸ†αžšαž»αž‰αžŠαŸ„αž™αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž“αŸ…αž›αžΎ Kafka (αžαž·αž…αžαž½αž…) αžœαžΆαž€αŸαž“αžΉαž„αž˜αžΆαž“αž€αžΆαžšαž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž€αžΆαžšαž”αžΆαž‰αŸ‹αž”αŸ’αžšαž αžΆαžšαžŠαŸαž’αŸ† αž“αž·αž„αž€αžΆαžšαžšαž€αžƒαžΎαž‰αž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž•αž„αžŠαŸ‚αžš - αž€αžΆαžšαž–αž·αžŸαŸ„αž’αž“αŸαž˜αž·αž“αž’αžΆαž…αž’αŸ’αžœαžΎαž”αžΆαž“αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž–αž½αž€αž‚αŸαŸ”

αž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž§αž”αž€αžšαžŽαŸαž”αž„αŸ’αžœαž·αž›αžŸαž„αž‡αžΆαž˜αž½αž™ API αž’αžŸαž˜αž€αžΆαž›αž“αŸ…αž›αžΎ Kafka

αž€αžΆαžšαž”αžŠαž·αžŸαŸαž’αŸ– αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡αž‚αžΊαž•αŸ’αž’αŸ‚αž€αž›αžΎαžŸαž˜αŸ’αž—αžΆαžšαŸˆαžŠαŸ‚αž›αž”αžΆαž“αž˜αž€αž–αžΈαž€αžΆαžšαž”αŸ’αžšαž‡αž»αŸ†αžŠαŸ‚αž›αž›αŸ„αž€ Sergey αž”αžΆαž“αž’αŸ’αžœαžΎαž‘αžΎαž„αž€αŸ’αž“αž»αž„αžαŸ‚αžœαž·αž…αŸ’αž†αž·αž€αžΆ αž†αŸ’αž“αžΆαŸ† 2018 αž“αŸ…αž›αžΎ HighLoad++αŸ” αž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαž•αŸ’αž‘αžΆαž›αŸ‹αžšαž”αžŸαŸ‹ Lamoda αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™ Kafka αž”αžΆαž“αž‘αžΆαž€αŸ‹αž‘αžΆαž‰αž’αŸ’αž“αž€αžŸαŸ’αžαžΆαž”αŸ‹αž˜αž·αž“αžαž·αž…αž‡αžΆαž„αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž“αŸ…αž›αžΎαž€αžΆαž›αžœαž·αž—αžΆαž‚αž“αŸ„αŸ‡αž‘αŸαŸ” αž™αžΎαž„αž‚αž·αžαžαžΆαž“αŸαŸ‡αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸαžŠαŸαž›αŸ’αž’αž˜αž½αž™ αžŠαŸ‚αž›αž’αŸ’αž“αž€αž’αžΆαž… αž“αž·αž„αž‚αž½αžšαžαŸ‚αžŸαŸ’αžœαŸ‚αž„αžšαž€αž˜αž“αž»αžŸαŸ’αžŸαžŠαŸ‚αž›αž˜αžΆαž“αž‚αŸ†αž“αž·αžαžŠαžΌαž…αž‚αŸ’αž“αžΆαž‡αžΆαž“αž·αž…αŸ’αž… αž αžΎαž™αž’αŸ’αž“αž€αžšαŸ€αž”αž…αŸ†αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ HighLoad++ αž“αžΉαž„αž”αž“αŸ’αžαž–αŸ’αž™αžΆαž™αžΆαž˜αž”αž„αŸ’αž€αžΎαžαž”αžšαž·αž™αžΆαž€αžΆαžŸαžŠαŸ‚αž›αž’αŸ†αžŽαŸ„αž™αž•αž›αžŠαž›αŸ‹αžšαžΏαž„αž“αŸαŸ‡αŸ”

αž’αŸ†αž–αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš

Lamoda αž‚αžΊαž‡αžΆαžœαŸαž‘αž·αž€αžΆαž–αžΆαžŽαž·αž‡αŸ’αž‡αž€αž˜αŸ’αž˜αž’αŸαž‘αž·αž…αžαŸ’αžšαžΌαž“αž·αž…αžŠαŸαž’αŸ†αž˜αž½αž™αžŠαŸ‚αž›αž˜αžΆαž“αž˜αž‡αŸ’αžˆαž˜αžŽαŸ’αžŒαž›αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“ αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžŠαžΉαž€αž‡αž‰αŸ’αž‡αžΌαž“ (αž“αž·αž„αžŸαžΆαžαžΆαž‡αžΆαž…αŸ’αžšαžΎαž“) αžŸαŸ’αž‘αžΌαžŒαžΈαž™αŸ„αžšαžΌαž”αžαž αžƒαŸ’αž›αžΆαŸ†αž„αžŠαŸαž’αŸ† αž αžΎαž™αž’αŸ’αžœαžΈαŸ—αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αžœαžΆαŸ” αž˜αžΆαž“αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž‘αžΌαž‘αžΆαžαŸ‹αžšαžΆαž”αŸ‹αžŸαž·αž” αžŠαŸƒαž‚αžΌ b2b αžŠαŸ‚αž›αž’αžΆαž…αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž‘αžΆαŸ†αž„αž“αŸαŸ‡αžαŸ’αž›αŸ‡ αž¬αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž αžΎαž™αž…αž„αŸ‹αžŠαžΉαž„αž–αŸαžαŸŒαž˜αžΆαž“αžαŸ’αž˜αžΈαŸ—αž’αŸ†αž–αžΈαž•αž›αž·αžαž•αž›αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαŸ” αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ€αž Lamoda αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž‘αŸαžŸαž…αŸ†αž“αž½αž“αž”αžΈαž€αŸ’αžšαŸ…αž–αžΈαžŸαž αž–αŸαž“αŸ’αž’αžšαž»αžŸαŸ’αžŸαŸŠαžΈαž αžΎαž™αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αž‚αžΊαžαž»αžŸαž‚αŸ’αž“αžΆαž”αž“αŸ’αžαž·αž…αž”αž“αŸ’αžαž½αž…αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡αŸ” αžŸαžšαž»αž”αž˜αž€ αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž˜αžΆαž“αžœαž·αž’αžΈαž…αŸ’αžšαžΎαž“αž‡αžΆαž„αž˜αž½αž™αžšαž™αž€αŸ’αž“αž»αž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž‘αž·αž‰αžαŸ’αž˜αžΈ αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαžαŸ‚αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαžΆαž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αžœαžΆαŸ” αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™αž‡αŸ†αž“αž½αž™αž–αžΈαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžšαžΆαž”αŸ‹αžŸαž·αž”αžŠαŸ‚αž›αž‡αž½αž“αž€αžΆαž›αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αžαžΆαž˜αžšαž”αŸ€αž”αžŠαŸ‚αž›αž˜αž·αž“αž…αŸ’αž”αžΆαžŸαŸ‹αž›αžΆαžŸαŸ‹αŸ” αžœαžΆαž€αŸαž˜αžΆαž“αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž€αžŽαŸ’αžαžΆαž›αžŠαŸ‚αž›αž€αžΆαžšαž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž…αž˜αŸ’αž”αž„αž‚αžΊαžŸαŸ’αžαžΆαž“αž—αžΆαž–αžŸαžŽαŸ’αžαžΆαž”αŸ‹αž’αŸ’αž“αžΆαž”αŸ‹αŸ” αž™αžΎαž„αž αŸ…αž“αžΆαž„αžαžΆ BOB αžαŸ’αž‰αž»αŸ†αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž“αžΆαž„αŸ”

αž§αž”αž€αžšαžŽαŸαžŸαž„αž”αŸ’αžšαžΆαž€αŸ‹αžœαž·αž‰αž‡αžΆαž˜αž½αž™ API αžŠαŸ‚αž›αž‡αŸ†αžšαž»αž‰αžŠαŸ„αž™αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ

αž–αžΆαž€αŸ’αž™β€‹αžŠαŸ‚αž›β€‹αž‡αŸ†αžšαž»αž‰β€‹αžŠαŸ„αž™β€‹αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸβ€‹αž‚αžΊβ€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž‚αŸβ€‹αž›αž½αž…β€‹αž…αžΌαž›β€‹αž™αŸ‰αžΆαž„β€‹αžαŸ’αž›αžΆαŸ†αž„ αž αžΎαž™β€‹αž”αž“αŸ’αžαž·αž…β€‹αž‘αŸ€αžβ€‹αž™αžΎαž„β€‹αž“αžΉαž„β€‹αž€αŸ†αžŽαžαŸ‹β€‹αž±αŸ’αž™β€‹αž€αžΆαž“αŸ‹αžαŸ‚β€‹αž›αž˜αŸ’αž’αž·αžβ€‹αž’αŸ†αž–αžΈβ€‹αž’αžαŸ’αžαž“αŸαž™β€‹αž“αŸƒβ€‹αž–αžΆαž€αŸ’αž™β€‹αž“αŸαŸ‡αŸ” αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž”αžšαž·αž”αž‘αžŠαŸ‚αž›αž™αžΎαž„αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαžŸαžΆαž€αž›αŸ’αž”αž„αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αž API αžŠαŸ‚αž›αž‡αŸ†αžšαž»αž‰αžŠαŸ„αž™αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž“αŸ…αž€αŸ’αž“αž»αž„ Kafka αŸ”

αž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž§αž”αž€αžšαžŽαŸαž”αž„αŸ’αžœαž·αž›αžŸαž„αž‡αžΆαž˜αž½αž™ API αž’αžŸαž˜αž€αžΆαž›αž“αŸ…αž›αžΎ Kafka

αž“αŸ…αž€αŸ’αž“αž»αž„αž αžΆαž„αžŽαžΆαž˜αž½αž™ αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž›αžΎαž€αžΆαžšαž€αž»αž˜αŸ’αž˜αŸ‰αž„αŸ‹αžŠαŸ‚αž›αž’αžαž·αžαž·αž‡αž“αž”αž„αŸ‹αž”αŸ’αžšαžΆαž€αŸ‹ αž˜αžΆαž“αž–αŸαž›αžαŸ’αž›αŸ‡αžŠαŸ‚αž›αž αžΆαž„αžαž˜αŸ’αžšαžΌαžœαž±αŸ’αž™αžŸαž„αž›αž»αž™αžœαž·αž‰ αžŠαŸ„αž™αžŸαžΆαžšαž•αž›αž·αžαž•αž›αž˜αž·αž“αžŸαž˜αž“αžΉαž„αž’αžαž·αžαž·αž‡αž“αŸ” αž“αŸαŸ‡αž‚αžΊαž‡αžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαŸ’αž›αžΈαž˜αž½αž™αŸ– αž™αžΎαž„αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž–αŸαžαŸŒαž˜αžΆαž“ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž…αžΆαŸ†αž”αžΆαž…αŸ‹ αž“αž·αž„αž•αŸ’αž‘αŸαžšαž”αŸ’αžšαžΆαž€αŸ‹αŸ”

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αžΆαžšαžαŸ’αžšαž‘αž”αŸ‹αž˜αž€αžœαž·αž‰αž€αžΆαž“αŸ‹αžαŸ‚αž˜αžΆαž“αž—αžΆαž–αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αžŠαŸ„αž™αžŸαžΆαžšαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž…αŸ’αž”αžΆαž”αŸ‹ αž αžΎαž™αž™αžΎαž„αžαŸ’αžšαžΌαžœαž’αž“αž»αžœαžαŸ’αžαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžαŸ’αž“αžΆαžαžαžΌαž…αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαžΆαŸ”

αž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž§αž”αž€αžšαžŽαŸαž”αž„αŸ’αžœαž·αž›αžŸαž„αž‡αžΆαž˜αž½αž™ API αž’αžŸαž˜αž€αžΆαž›αž“αŸ…αž›αžΎ Kafka

αž€αžΆαžšαž›αžΎαž€αž‘αžΉαž€αž…αž·αžαŸ’αžαžšαž”αžŸαŸ‹αž™αžΎαž„αŸ–

  1. αž…αŸ’αž”αžΆαž”αŸ‹ FZ-54 - αž“αž·αž™αžΆαž™αž±αŸ’αž™αžαŸ’αž›αžΈ αž…αŸ’αž”αžΆαž”αŸ‹αžαž˜αŸ’αžšαžΌαžœαž±αŸ’αž™αžšαžΆαž™αž€αžΆαžšαžŽαŸαž‘αŸ…αž€αžΆαžšαž·αž™αžΆαž›αŸαž™αž–αž“αŸ’αž’αžŠαžΆαžšαž’αŸ†αž–αžΈαžšαžΆαž›αŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžšαžΌαž”αž·αž™αžœαžαŸ’αžαž» αžαžΆαžαžΎαžœαžΆαž‡αžΆαž€αžΆαžšαžαŸ’αžšαž‘αž”αŸ‹αž˜αž€αžœαž·αž‰ αž¬αž”αž„αŸ’αž€αžΆαž“αŸ‹αžŠαŸƒ αž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž›αžαŸ’αž›αžΈαž˜αž½αž™ SLA αž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž›αž”αŸ‰αž»αž“αŸ’αž˜αžΆαž“αž“αžΆαž‘αžΈαŸ” αž™αžΎαž„αž‡αžΆαž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αž–αžΆαžŽαž·αž‡αŸ’αž‡αž€αž˜αŸ’αž˜αž’αŸαž‘αž·αž…αžαŸ’αžšαžΌαž“αž·αž€ αž’αž“αž»αžœαžαŸ’αžαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž‡αžΆαž…αŸ’αžšαžΎαž“αŸ” αžαžΆαž˜αž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸ αž“αŸαŸ‡αž˜αžΆαž“αž“αŸαž™αžαžΆ αž‘αŸ†αž“αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαžαŸ’αž˜αžΈ (αž αžΎαž™αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžαŸ’αž˜αžΈ) αž“αž·αž„αž€αžΆαžšαž€αŸ‚αž›αž˜αŸ’αž’αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ”
  2. BOB αž”αŸ†αž”αŸ‚αž€ αž‚αžΊαž‡αžΆαž‚αž˜αŸ’αžšαŸ„αž„αž•αŸ’αž‘αŸƒαž€αŸ’αž“αž»αž„αžšαž”αžŸαŸ‹αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αžŠαžΎαž˜αŸ’αž”αžΈαž”αž“αŸ’αž’αžΌαžšαž”αž“αŸ’αžαž™ BOB β€‹β€‹αž–αžΈαž‘αŸ†αž“αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž˜αž½αž™αž…αŸ†αž“αž½αž“αž’αŸ†αžŠαŸ‚αž›αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαžŸαŸ’αž“αžΌαž› αž“αž·αž„αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž—αžΆαž–αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž‘αžΆαŸ†αž„αž˜αžΌαž›αžšαž”αžŸαŸ‹αžœαžΆαŸ”

αž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž§αž”αž€αžšαžŽαŸαž”αž„αŸ’αžœαž·αž›αžŸαž„αž‡αžΆαž˜αž½αž™ API αž’αžŸαž˜αž€αžΆαž›αž“αŸ…αž›αžΎ Kafka

αžŠαŸ’αž™αžΆαž€αŸ’αžšαžΆαž˜αž“αŸαŸ‡αž”αž„αŸ’αž αžΆαž‰αž–αžΈαž”αŸ’αžšαž–αŸαž“αŸ’αž’ Lamoda αžŸαŸ†αžαžΆαž“αŸ‹αŸ—αŸ” αž₯αž‘αžΌαžœαž“αŸαŸ‡αž–αž½αž€αž‚αŸαž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž˜αžΆαž“αž…αŸ’αžšαžΎαž“αž‡αžΆαž„ αž€αŸ’αžšαž»αž˜αžαžΆαžšαžΆαž“αž·αž€αžšαž“αŸƒαžŸαŸαžœαžΆαž˜αžΈαž€αŸ’αžšαžΌ 5-10 αž“αŸ…αž‡αž»αŸ†αžœαž·αž‰ monolith αžšαž½αž‰αžαžΌαž…. αž–αž½αž€αžœαžΆαž€αŸ†αž–αž»αž„αž›αžΌαžαž›αžΆαžŸαŸ‹αž™αžΊαž αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž™αžΎαž„αž€αŸ†αž–αž»αž„αž–αŸ’αž™αžΆαž™αžΆαž˜αž’αŸ’αžœαžΎαž±αŸ’αž™αž–αž½αž€αžœαžΆαžαžΌαž…αž‡αžΆαž„αž˜αž»αž“ αž–αžΈαž–αŸ’αžšαŸ„αŸ‡αž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž”αŸ†αžŽαŸ‚αž€αžŠαŸ‚αž›αž”αžΆαž“αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž“αŸ…αž€αžŽαŸ’αžαžΆαž›αž‚αžΊαž‚αž½αžšαž±αŸ’αž™αžαŸ’αž›αžΆαž… - αž™αžΎαž„αž˜αž·αž“αž’αžΆαž…αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αžœαžΆαž’αŸ’αž›αžΆαž€αŸ‹αž…αž»αŸ‡αž”αžΆαž“αž‘αŸαŸ” αž™αžΎαž„β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž”αž„αŸ’αžαŸ†β€‹αž±αŸ’αž™β€‹αž€αž€αŸ‹β€‹αž‘αž»αž€β€‹αž€αžΆαžšβ€‹αž•αŸ’αž›αžΆαžŸαŸ‹β€‹αž”αŸ’αžαžΌαžšβ€‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ (αž–αŸ’αžšαž½αž‰) αž αžΎαž™β€‹αž‚αž·αžβ€‹αžαžΆβ€‹αž€αžΆαžšβ€‹αž•αŸ’αž›αžΆαžŸαŸ‹β€‹αž”αŸ’αžαžΌαžšβ€‹αž‘αžΆαŸ†αž„β€‹αž’αžŸαŸ‹β€‹αž’αžΆαž…β€‹αž“αžΉαž„β€‹αž€αŸ’αž›αžΆαž™β€‹αž‡αžΆβ€‹αž˜αž·αž“β€‹αž’αžΆαž…β€‹αž”αŸ’αžšαžΎβ€‹αž”αžΆαž“αŸ”

BOB αž€αŸαž˜αžΆαž“αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‡αžΆαž…αŸ’αžšαžΎαž“αž•αž„αžŠαŸ‚αžšαŸ– αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‘αžΌαž‘αžΆαžαŸ‹ αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαžΉαž€αž‡αž‰αŸ’αž‡αžΌαž“ αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‡αžΌαž“αžŠαŸ†αžŽαžΉαž„αŸ”αž›αŸ”

αžαžΆαž˜αž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸ BOB αž‚αžΊαŸ–

  • ~ 150k αž”αž“αŸ’αž‘αžΆαžαŸ‹αž“αŸƒαž€αžΌαžŠ + ~ 100k αž”αž“αŸ’αž‘αžΆαžαŸ‹αž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αž;
  • php7.2 + Zend 1 & Symfony Components 3;
  • > 100 APIs & ~ 50 αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αžαžΆαž„αž€αŸ’αžšαŸ…;
  • 4 αž”αŸ’αžšαž‘αŸαžŸαžŠαŸ‚αž›αž˜αžΆαž“αžαž€αŸ’αž€αžœαž·αž‡αŸ’αž‡αžΆαž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αŸ”

αž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™ BOB β€‹β€‹αž˜αžΆαž“αžαž˜αŸ’αž›αŸƒαžαŸ’αž›αŸƒ αž“αž·αž„αžˆαžΊαž…αžΆαž”αŸ‹ αž”αžšαž·αž˜αžΆαžŽαž“αŸƒαž€αžΌαžŠ αž“αž·αž„αž”αž‰αŸ’αž αžΆαžŠαŸ‚αž›αžœαžΆαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž‚αžΊ αž‚αŸ’αž˜αžΆαž“αž“αžšαžŽαžΆαž˜αŸ’αž“αžΆαž€αŸ‹αž’αžΆαž…αžŠαžΆαž€αŸ‹αžœαžΆαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‘αŸ…αž€αŸ’αž“αž»αž„αž€αŸ’αž”αžΆαž›αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαž”αžΆαž“αž‘αŸαŸ” αž‡αžΆαž‘αžΌαž‘αŸ…αž˜αžΆαž“αž αŸαžαž»αž•αž›αž‡αžΆαž…αŸ’αžšαžΎαž“αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαžŸαžΆαž˜αž‰αŸ’αž‰αŸ”

αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαŸ’αžšαž‘αž”αŸ‹

αžŠαŸ†αž”αžΌαž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž–αžΈαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αžΌαž›αžšαž½αž˜αž“αŸ…αž€αŸ’αž“αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš: BOB αž“αž·αž„αž€αžΆαžšαž‘αžΌαž‘αžΆαžαŸ‹αŸ” αž₯αž‘αžΌαžœβ€‹αž–αžΈαžšβ€‹αž‘αŸ€αžβ€‹αž›αŸαž…β€‹αž‘αžΎαž„β€‹:

  • αžŸαŸαžœαžΆαžŸαžΆαžšαž–αžΎαž–αž“αŸ’αž’αžŠαŸ‚αž›αž“αžΉαž„αžαŸ‚αžšαž€αŸ’αžŸαžΆαž”αž‰αŸ’αž αžΆαž‡αžΆαž˜αž½αž™αžŸαžΆαžšαž–αžΎαž–αž“αŸ’αž’ αž“αž·αž„αž€αžΆαžšαž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž‡αžΆαž˜αž½αž™αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžαžΆαž„αž€αŸ’αžšαŸ…αŸ”
  • αž§αž”αž€αžšαžŽαŸαžŸαž„αž”αŸ’αžšαžΆαž€αŸ‹αžœαž·αž‰ αžŠαŸ‚αž›αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆαž˜αžΆαž“αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžαŸ’αž˜αžΈ αžŠαžΎαž˜αŸ’αž”αžΈαž€αž»αŸ†αž±αŸ’αž™ BOB β€‹β€‹αž€αžΎαž“αž‘αžΎαž„αŸ”

αž₯αž‘αžΌαžœαž“αŸαŸ‡αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αžΎαž›αž‘αŸ…αžŠαžΌαž…αž“αŸαŸ‡:

αž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž§αž”αž€αžšαžŽαŸαž”αž„αŸ’αžœαž·αž›αžŸαž„αž‡αžΆαž˜αž½αž™ API αž’αžŸαž˜αž€αžΆαž›αž“αŸ…αž›αžΎ Kafka

  1. BOB αž‘αž‘αž½αž›αž”αžΆαž“αžŸαŸ†αžŽαžΎαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŸαž„αž”αŸ’αžšαžΆαž€αŸ‹αžœαž·αž‰αŸ”
  2. BOB αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž§αž”αž€αžšαžŽαŸαž”αž„αŸ’αžœαž·αž›αžŸαž„αž“αŸαŸ‡αŸ”
  3. αž§αž”αž€αžšαžŽαŸαžŸαž„αž”αŸ’αžšαžΆαž€αŸ‹αž”αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž‘αžΌαž‘αžΆαžαŸ‹αŸ– "αž”αŸ’αžšαž‚αž›αŸ‹αž”αŸ’αžšαžΆαž€αŸ‹αžœαž·αž‰αŸ”"
  4. αž€αžΆαžšαž‘αžΌαž‘αžΆαžαŸ‹αžŸαž„αž”αŸ’αžšαžΆαž€αŸ‹αžœαž·αž‰αŸ”
  5. αž§αž”αž€αžšαžŽαŸαžŸαž„αž”αŸ’αžšαžΆαž€αŸ‹αžœαž·αž‰ αž“αž·αž„ BOB αž’αŸ’αžœαžΎαžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž‡αžΆαž˜αž½αž™αž‚αŸ’αž“αžΆ αž–αžΈαž–αŸ’αžšαŸ„αŸ‡αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž–αŸαž›αž“αŸαŸ‡αž–αž½αž€αž‚αŸαž‘αžΆαŸ†αž„αž–αžΈαžšαžαŸ’αžšαžΌαžœαž€αžΆαžšαžœαžΆαŸ” αž™αžΎαž„αž˜αž·αž“αž‘αžΆαž“αŸ‹αžšαž½αž…αžšαžΆαž›αŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ’αžαžΌαžšαž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„αž‘αŸ…αž§αž”αž€αžšαžŽαŸαžŸαž„αž”αŸ’αžšαžΆαž€αŸ‹αžœαž·αž‰αž‘αŸ αžŠαŸ„αž™αžŸαžΆαžš BOB αž˜αžΆαž“ UI αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αžŽαž“αŸαž™αŸ’αž™ αž“αž·αž„αž‡αžΆαž‘αžΌαž‘αŸ…αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‡αžΆαž…αŸ’αžšαžΎαž“αžŠαŸ‚αž›αž˜αž·αž“αž’αžΆαž…αž•αŸ’αž‘αŸαžšαž”αžΆαž“αž™αŸ‰αžΆαž„αž„αžΆαž™αžŸαŸ’αžšαž½αž›αŸ” αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž’αž„αŸ’αž‚αž»αž™αž›αžΎαž€αŸ…αž’αžΈαž–αžΈαžšαŸ”
  6. αžŸαŸ†αžŽαžΎβ€‹αžŸαžΆαžšαž–αžΎαž–αž“αŸ’αž’β€‹αž”αžΆαžαŸ‹β€‹αž‘αŸ…β€‹αž αžΎαž™αŸ”

αž‡αžΆαž›αž‘αŸ’αž’αž•αž›αž™αžΎαž„αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž”αŸ’αžšαž—αŸαž‘αž“αŸƒαž‘αžΆαž“αž€αŸ’αžšαž»αž„αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž“αŸ…αž›αžΎ Kafka - event-bus αžŠαŸ‚αž›αž’αŸ’αžœαžΈαŸ—αž”αžΆαž“αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αŸ” ហ៊ឺ αž–αŸαž›αž“αŸαŸ‡ αž™αžΎαž„αž˜αžΆαž“αž…αŸ†αžŽαž»αž…αžαŸ‚αž˜αž½αž™αž“αŸƒαž€αžΆαžšαž”αžšαžΆαž‡αŸαž™ (αž–αžΆαž€αŸ’αž™αžŸαŸ†αžŠαžΈ)αŸ”

αž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž§αž”αž€αžšαžŽαŸαž”αž„αŸ’αžœαž·αž›αžŸαž„αž‡αžΆαž˜αž½αž™ API αž’αžŸαž˜αž€αžΆαž›αž“αŸ…αž›αžΎ Kafka

αž‚αž»αžŽαžŸαž˜αŸ’αž”αžαŸ’αžαž·αž“αž·αž„αž‚αž»αžŽαžœαž·αž”αžαŸ’αžαž·αž‚αžΊαž…αŸ’αž”αžΆαžŸαŸ‹αžŽαžΆαžŸαŸ‹αŸ” αž™αžΎαž„αž”αž„αŸ’αž€αžΎαžαž‘αžΆαž“αž€αŸ’αžšαž»αž„ αžŠαŸ‚αž›αž˜αžΆαž“αž“αŸαž™αžαžΆαž₯αž‘αžΌαžœαž“αŸαŸ‡αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž–αžΉαž„αž•αŸ’αž’αŸ‚αž€αž›αžΎαžœαžΆαŸ” αž“αŸαŸ‡αž‡αž½αž™αžŸαž˜αŸ’αžšαž½αž›αžŠαž›αŸ‹αž€αžΆαžšαžšαž…αž“αžΆ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŽαŸ‚αž“αžΆαŸ†αž…αŸ†αžŽαž»αž…αž˜αž½αž™αž“αŸƒαž€αžΆαžšαž”αžšαžΆαž‡αŸαž™αž‘αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αŸ” Kafka αž“αžΉαž„αž‚αžΆαŸ†αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αžΉαž„αžˆαž”αŸ‹αŸ”

αžαžΎαž’αŸ’αžœαžΈαž‘αŸ…αž‡αžΆ API αžŠαŸ‚αž›αž‡αŸ†αžšαž»αž‰αžŠαŸ„αž™αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ

αž…αž˜αŸ’αž›αžΎαž™αžŠαŸαž›αŸ’αž’αž…αŸ†αž–αŸ„αŸ‡αžŸαŸ†αžŽαž½αžšαž“αŸαŸ‡αž‚αžΊαž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαžŠαŸ„αž™ Martin Fowler (GOTO 2017) "αž’αžαŸ’αžαž“αŸαž™αž‡αžΆαž…αŸ’αžšαžΎαž“αž“αŸƒαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αžŠαŸ‚αž›αž‡αŸ†αžšαž»αž‰αžŠαŸ„αž™αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ".

αžŸαž„αŸ’αžαŸαž”αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž™αžΎαž„αž”αžΆαž“αž’αŸ’αžœαžΎαŸ–

  1. αž”αž‰αŸ’αž…αž”αŸ‹αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž’αžŸαž˜αž€αžΆαž›αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžαžΆαž˜αžšαž™αŸˆ αž€αžΆαžšαž•αŸ’αž‘αž»αž€αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ. αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™αž€αžΆαžšαž‡αžΌαž“αžŠαŸ†αžŽαžΉαž„αžŠαž›αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŠαŸ‚αž›αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž’αŸ†αž–αžΈαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžŸαŸ’αžαžΆαž“αž—αžΆαž–αž“αŸ…αž›αžΎαž”αžŽαŸ’αžαžΆαž‰ αž™αžΎαž„αžŸαžšαžŸαŸαžšαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž’αŸ†αž–αžΈαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžŸαŸ’αžαžΆαž“αž—αžΆαž–αž‘αŸ…αž€αž“αŸ’αž›αŸ‚αž„αž•αŸ’αž‘αž»αž€αž€αžŽαŸ’αžαžΆαž› αž αžΎαž™αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŠαŸ‚αž›αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž›αžΎαž”αŸ’αžšαž’αžΆαž“αž”αž‘αž“αŸ„αŸ‡αž’αžΆαž“αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αžŠαŸ‚αž›αž›αŸαž…αž‘αžΎαž„αž–αžΈαž‘αžΈαž“αŸ„αŸ‡αŸ”
  2. αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αžΆαžšαž‡αžΌαž“αžŠαŸ†αžŽαžΉαž„ (αž€αžΆαžšβ€‹αž‡αžΌαž“β€‹αžŠαŸ†αžŽαžΉαž„) αžŠαŸ‚αž›αž’αŸ’αžœαžΈαž˜αž½αž™αž”αžΆαž“αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž“αŸ…αž€αž“αŸ’αž›αŸ‚αž„αžŽαžΆαž˜αž½αž™αŸ” αž§αž‘αžΆαž αžšαžŽαŸ αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž‘αž·αž‰αž”αžΆαž“αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαŸ” αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŠαŸ‚αž›αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž›αžΎαž‘αž·αž“αŸ’αž“αž“αŸαž™αž˜αž½αž™αž…αŸ†αž“αž½αž“αžŠαŸ‚αž›αž’αž˜αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžŸαŸ’αžαžΆαž“αž—αžΆαž–αžŠαŸ‚αž›αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαž‡αžΌαž“αžŠαŸ†αžŽαžΉαž„αž“αŸ„αŸ‡ αž’αžΆαž…αžŸαŸ’αžœαŸ‚αž„αžšαž€αžŸαŸ’αžαžΆαž“αž—αžΆαž–αžšαž”αžŸαŸ‹αžœαžΆαžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„αž”αžΆαž“αŸ”
  3. αž‡αž˜αŸ’αžšαžΎαžŸαž’αžαž·αž”αžšαž˜αžΆαž‚αžΊαž”αŸ’αžšαž—αž–αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž–αŸαž‰αž›αŸαž‰, αž€αžΆαžšαž•αŸ’αž‘αŸαžšαžšαžŠαŸ’αž‹αž“αŸ…αž€αŸ’αž“αž»αž„αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž“αŸ„αŸ‡αž˜αžΆαž“αž–αŸαžαŸŒαž˜αžΆαž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž…αžΆαŸ†αž”αžΆαž…αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ– αžαžΎαžœαžΆαž”αžΆαž“αž˜αž€αž–αžΈαžŽαžΆ αž“αž·αž„αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž’αŸ’αžœαžΈαžŠαŸ‚αž›αžœαžΆαž”αžΆαž“αž‘αŸ… αžšαž”αŸ€αž”αžŠαŸ‚αž›αž‘αž·αž“αŸ’αž“αž“αŸαž™αž”αžΆαž“αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαŸ” αž›αŸ” αžŸαŸ†αžŽαž½αžšαžαŸ‚αž˜αž½αž™αž‚αžαŸ‹αž‚αžΊαž›αž‘αŸ’αž’αž—αžΆαž– αž“αž·αž„αž…αŸ†αž“αž½αž“αž–αŸαžαŸŒαž˜αžΆαž“αžŠαŸ‚αž›αž’αŸ’αž“αž€αž’αžΆαž…αž˜αžΆαž“αž›αž‘αŸ’αž’αž—αžΆαž–αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αŸ”

αž‡αžΆαž•αŸ’αž“αŸ‚αž€αž˜αž½αž™αž“αŸƒαž€αžΆαžšαž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž§αž”αž€αžšαžŽαŸαžŸαž„αž”αŸ’αžšαžΆαž€αŸ‹αžœαž·αž‰ αž™αžΎαž„αž”αžΆαž“αž”αŸ’αžšαžΎαž‡αž˜αŸ’αžšαžΎαžŸαž‘αžΈαž”αžΈαŸ” αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαžŠαŸαžŸαžΆαž˜αž‰αŸ’αž‰αž“αŸαŸ‡ αž–αŸ’αžšαŸ„αŸ‡αžœαžΆαž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž‘αžΆαž‰αž™αž€αž–αŸαžαŸŒαž˜αžΆαž“αž›αž˜αŸ’αž’αž·αž αž”αžΌαž€αžšαž½αž˜αž‘αžΆαŸ†αž„αž€αžΆαžšαž›αž»αž”αž”αŸ†αž”αžΆαžαŸ‹αžŸαŸαžŽαžΆαžšαžΈαž™αŸ‰αžΌ αžŠαŸ‚αž›αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαžαŸ’αž˜αžΈαž“αžΈαž˜αž½αž™αŸ—αž”αž„αŸ’αž€αžΎαžαž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž±αŸ’αž™αž”αžΆαž“αž…αŸ’αž”αžΆαžŸαŸ‹αž›αžΆαžŸαŸ‹ αž‘αž‘αž½αž›αž”αžΆαž“αžŸαŸ†αžŽαžΎαž–αžΈαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αŸ”

αžŸαŸαžœαžΆαž§αž”αž€αžšαžŽαŸαžŸαž„αž”αŸ’αžšαžΆαž€αŸ‹αžœαž·αž‰αŸ” αž˜αž·αž“αž”αžΆαž“αž•αŸ’αž‘αž»αž€αžŠαžΌαž…αŸ’αž“αŸαŸ‡ Kafka αž˜αžΆαž“αžšαžŸαž‡αžΆαžαž·αž”αŸŠαž·αž…αž…αŸ’αžšαžΎαž“αž‡αžΆαž„αž—αžΆαž–αž…αžΆαŸ†αž”αžΆαž…αŸ‹αŸ” αžαŸ’αž‰αž»αŸ†β€‹αž˜αž·αž“β€‹αž‚αž·αžβ€‹αžαžΆβ€‹αž”αŸ’αžšαžŸαž·αž“β€‹αž”αžΎβ€‹αžŸαŸαžœαžΆβ€‹αžŸαž„β€‹αž”αŸ’αžšαžΆαž€αŸ‹β€‹αžœαž·αž‰β€‹αž€αŸ’αž›αžΆαž™β€‹αž‡αžΆβ€‹αž‚αž˜αŸ’αžšαŸ„αž„β€‹αžŠαŸ‚αž›β€‹αž˜αžΆαž“β€‹αž”αž“αŸ’αž‘αž»αž€β€‹αžαŸ’αž–αžŸαŸ‹ αž“αŸ„αŸ‡β€‹αž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜β€‹αž“αžΉαž„β€‹αž˜αžΆαž“β€‹αžŸαž»αž—αž˜αž„αŸ’αž‚αž›αŸ”

αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš Async AS IS

αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž’αžŸαž˜αž€αžΆαž› αž“αžΆαž™αž€αžŠαŸ’αž‹αžΆαž“ PHP αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆαž”αŸ’αžšαžΎ RabbitMQ αŸ” αž™αžΎαž„αž”αžΆαž“αž”αŸ’αžšαž˜αžΌαž›αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŸαŸ’αž“αžΎαžŸαž»αŸ† αžŠαžΆαž€αŸ‹αžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž‡αž½αžšαž˜αž½αž™ αž αžΎαž™αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž“αŸƒαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžŠαžΌαž…αž‚αŸ’αž“αžΆαž”αžΆαž“αž’αžΆαž“αžœαžΆ αž αžΎαž™αž•αŸ’αž‰αžΎαžœαžΆ (αž¬αž˜αž·αž“αž”αžΆαž“αž•αŸ’αž‰αžΎαžœαžΆ)αŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ API αžαŸ’αž›αž½αž“αžœαžΆ Lamoda αž”αŸ’αžšαžΎ Swagger αž™αŸ‰αžΆαž„αžŸαž€αž˜αŸ’αž˜αŸ” αž™αžΎαž„αžšαž…αž“αžΆ API αž–αž·αž–αžŽαŸŒαž“αžΆαžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„ Swagger αž“αž·αž„αž”αž„αŸ’αž€αžΎαžαž€αžΌαžŠαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœ αž“αž·αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαŸ” αž™αžΎαž„αž€αŸαž”αŸ’αžšαžΎ JSON RPC 2.0 αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ‚αž›αž˜αŸ’αž’αž”αž“αŸ’αžαž·αž…αž•αž„αžŠαŸ‚αžšαŸ”

αž“αŸ…αž€αž“αŸ’αž›αŸ‚αž„αžαŸ’αž›αŸ‡ αž‘αžΆαž“αž€αŸ’αžšαž»αž„ ESB αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎ αžαŸ’αž›αŸ‡αžšαžŸαŸ‹αž“αŸ…αž›αžΎ activeMQ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‡αžΆαž‘αžΌαž‘αŸ… RabbitMQ - αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš.

αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš Async TO BE

αž“αŸ…αž–αŸαž›αžšαž…αž“αžΆαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžαžΆαž˜αžšαž™αŸˆ event-bus αž—αžΆαž–αžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαž’αžΆαž…αžαžΆαž˜αžŠαžΆαž“αž”αžΆαž“αŸ” αž™αžΎαž„αž–αžŽαŸŒαž“αžΆαžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαž“αžΉαž„αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αžΆαž–αŸαž›αž’αž“αžΆαž‚αžαžαžΆαž˜αžšαž™αŸˆαž€αžΆαžšαž–αž·αž–αžŽαŸŒαž“αžΆαž’αŸ†αž–αžΈαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαŸ” αž‘αž˜αŸ’αžšαž„αŸ‹ yaml αž™αžΎαž„αžαŸ’αžšαžΌαžœαž”αž„αŸ’αž€αžΎαžαž€αžΌαžŠαžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„ αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž›αžΎαž„αž”αž„αŸ’αž€αžΎαž DTOs αžαžΆαž˜αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹ αž αžΎαž™αž”αž„αŸ’αžšαŸ€αž“αž’αžαž·αžαž·αž‡αž“ αž“αž·αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž±αŸ’αž™αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž–αž½αž€αž‚αŸαŸ” αž‡αŸ†αž“αžΆαž“αŸ‹αž‘αŸ…αž‡αžΆαž–αžΈαžšαž—αžΆαžŸαžΆ - golang αž“αž·αž„ php. αž“αŸαŸ‡αž‡αž½αž™αžšαž€αŸ’αžŸαžΆαž”αžŽαŸ’αžŽαžΆαž›αŸαž™αž±αŸ’αž™αž‡αžΆαž”αŸ‹αž›αžΆαž”αŸ‹αŸ” αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž›αžΎαž„β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αžŸαžšαžŸαŸαžšβ€‹αž‡αžΆβ€‹αž—αžΆαžŸαžΆβ€‹αž αŸ’αž‚αŸ„αž›αžΆαŸ†αž„ αžŠαŸ‚αž›β€‹αž‡αžΆβ€‹αž˜αžΌαž›αž αŸαžαž»β€‹αžŠαŸ‚αž›β€‹αžœαžΆβ€‹αž˜αžΆαž“β€‹αžˆαŸ’αž˜αŸ„αŸ‡β€‹αžαžΆ αž αŸ’αž‚αŸ„αž αŸ’αž‚αžΈαŸ”

αž”αŸ’αžšαž—αž–αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž“αŸ…αž›αžΎ Kafka αž‚αžΊαž‡αžΆαžšαžΏαž„αž’αž˜αŸ’αž˜αžαžΆαŸ” αž˜αžΆαž“αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž–αžΈαž€αŸ†αžŽαŸ‚αžŸαž αž‚αŸ’αžšαžΆαžŸαžŸαŸ†αžαžΆαž“αŸ‹αž“αŸƒ Kafka Confluent αž˜αžΆαž“ αžŽαžΆαž€αžΆαžŒαžΈαžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž–αžΈαž”αž„αž”αŸ’αž’αžΌαž“αžŠαŸ‚αž“αžšαž”αžŸαŸ‹αž™αžΎαž„ Zalando αŸ” αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ” αž€αžΆαžšαž›αžΎαž€αž‘αžΉαž€αž…αž·αžαŸ’αžαžŠαžΎαž˜αŸ’αž”αžΈαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‡αžΆαž˜αž½αž™ vanilla Kafka - αž“αŸαŸ‡αž˜αžΆαž“αž“αŸαž™αžαžΆαž‘αž»αž€αž±αŸ’αž™αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸ„αž™αž₯αžαž‚αž·αžαžαŸ’αž›αŸƒαžšαž αžΌαžαžŠαž›αŸ‹αž‘αžΈαž”αŸ†αž•αž»αžαž™αžΎαž„αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαžαžΆαžαžΎαž™αžΎαž„αž“αžΉαž„αž”αŸ’αžšαžΎαžœαžΆαž“αŸ…αž‚αŸ’αžšαž”αŸ‹αž‘αžΈαž€αž“αŸ’αž›αŸ‚αž„αž αžΎαž™αž€αŸαž‘αž»αž€αž€αž“αŸ’αž›αŸ‚αž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ’αž›αž½αž“αž™αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αŸ’αžœαžΎαžŸαž˜αž™αž»αž‘αŸ’αž’ αž“αž·αž„αž€αžΆαžšαž€αŸ‚αž›αž˜αŸ’αž’αŸ– αž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž™αžΎαž„αŸ” JSON RPC 2.0, generators for two languages ​​and let's see what else.

αžœαžΆαž‚αž½αžšαž±αŸ’αž™αž’αžŸαŸ‹αžŸαŸ†αžŽαžΎαž…αžŽαžΆαžŸαŸ‹αžŠαŸ‚αž›αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžŠαŸαžšαžΈαž€αžšαžΆαž™αž˜αž½αž™ αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž˜αžΆαž“αž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜αžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαž“αŸαŸ‡ Zalando αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αŸ’αžšαž αžΆαž€αŸ‹αž”αŸ’αžšαž αŸ‚αž›αž‚αŸ’αž“αžΆ αž™αžΎαž„αž˜αž·αž“αž’αžΆαž…αž”αŸ’αžšαžΎαžœαžΆαž±αŸ’αž™αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž“αŸ„αŸ‡αž‘αŸαŸ”

αž‚αŸ†αžšαžΌαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž“αŸ…αž–αŸαž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž˜αžΆαž“αžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜: αž™αžΎαž„αž’αžΆαž“αžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αž–αžΈ Kafka αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŸαžšαžŸαŸαžšαžαŸ‚αžαžΆαž˜αžšαž™αŸˆαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ - αž‘αžΆαž“αž€αŸ’αžšαž»αž„αŸ” αž˜αžΆαž“αž…αŸ’αžšαžΎαž“αžŠαŸ‚αž›αžαŸ’αžšαŸ€αž˜αžšαž½αž…αž‡αžΆαžŸαŸ’αžšαŸαž…αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„ Kafka: αžˆαŸ’αž˜αž½αž‰αž€αžŽαŸ’αžαžΆαž› αžαž»αž›αŸ’αž™αž€αžΆαžš αž αžΎαž™αžœαžΆαž‡αžΆαž€αžΆαžšαžαŸ’αžšαŸ€αž˜αžαŸ’αž›αž½αž“αž…αŸ’αžšαžΎαž“αž¬αžαž·αž…αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αž•αŸ’αžŠαŸαž€ αžαŸ’αž‰αž»αŸ†αž…αž„αŸ‹αžšαž€αŸ’αžŸαžΆαžœαžΆαž‘αž»αž€αŸ” αž™αžΎαž„αž…αž„αŸ‹αž”αž‰αŸ’αž…αž”αŸ‹αž€αžΆαžšαžαžαžαžΆαž˜αžšαž™αŸˆ Gateway aka Events-bus αž αžΎαž™αž“αŸαŸ‡αž‡αžΆαž˜αžΌαž›αž αŸαžαž»αŸ”

αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ - αž‘αžΆαž“αž€αŸ’αžšαž»αž„

αž¬αž‘αžΆαž“αž€αŸ’αžšαž»αž„αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαŸ” αž“αŸαŸ‡αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž‡αžΆαž…αŸ’αžšαž€αž•αŸ’αž›αžΌαžœ http αž‚αŸ’αž˜αžΆαž“αžšαžŠαŸ’αž‹ αžŠαŸ‚αž›αžŠαžΎαžšαžαž½αž“αžΆαž‘αžΈαžŸαŸ†αžαžΆαž“αŸ‹αŸ—αž˜αž½αž™αž…αŸ†αž“αž½αž“αŸ–

  • αž€αžΆαžšαž•αž›αž·αžαž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž€αŸ‹ - αž™αžΎαž„αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αžαžΆαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαžαŸ’αžšαžΌαžœαž“αžΉαž„αž›αž€αŸ’αžαžŽαŸˆαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ”
  • αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž˜αŸαž“αŸƒαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž“αŸ„αŸ‡αž‚αžΊαž“αŸαŸ‡αž‚αžΊαž‡αžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŸαŸ†αžαžΆαž“αŸ‹ αž“αž·αž„αžαŸ‚αž˜αž½αž™αž‚αžαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αžŠαŸ‚αž›αž†αŸ’αž›αžΎαž™αžŸαŸ†αžŽαž½αžšαžαžΆαžαžΎαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαžŽαžΆαžŠαŸ‚αž›αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αžΆαžαŸ‹αž‘αž»αž€αžαžΆαž˜αžΆαž“αžŸαž»αž–αž›αž—αžΆαž–αŸ” αžŸαž»αž–αž›αž—αžΆαž–αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αž“αžΉαž„αž”αŸ’αžšαž—αŸαž‘αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž“αž·αž„ enums αžŠαžΎαž˜αŸ’αž”αžΈαž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžαŸ’αž›αžΉαž˜αžŸαžΆαžšαž™αŸ‰αžΆαž„αžαžΉαž„αžšαŸ‰αžΉαž„αŸ”
  • αž˜αž»αžαž„αžΆαžšαž αžΆαžŸ αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ sharding - αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŸαžΆαžš Kafka αž‚αžΊαž‡αžΆ key-value αž αžΎαž™αžŠαŸ„αž™αž”αŸ’αžšαžΎ hash of key αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžŽαž“αžΆαž€αž“αŸ’αž›αŸ‚αž„αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαžŠαžΆαž€αŸ‹αžœαžΆαŸ”

αž αŸαžαž»αž’αŸ’αžœαžΈ

αž™αžΎαž„αž’αŸ’αžœαžΎαž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αž’αŸ†αž˜αž½αž™αžŠαŸ‚αž›αž˜αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžšαž›αžΌαž“ αž αŸαžαž»αž’αŸ’αžœαžΈαž”αžΆαž“αž‡αžΆαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž’αŸ’αžœαžΈ? αž“αŸαŸ‡αž‡αžΆαž€αžΆαžšαž–αž·αžŸαŸ„αž’αž“αŸαž αžΎαž™αž™αžΎαž„αžšαŸ†αž–αžΉαž„αžαžΆαž“αžΉαž„αž‘αž‘αž½αž›αž”αžΆαž“αž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž‡αžΆαž…αŸ’αžšαžΎαž“αŸ”

1: n + 1 αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš (αž˜αž½αž™αž‘αŸ…αž…αŸ’αžšαžΎαž“)

Kafka αž’αŸ’αžœαžΎαž±αŸ’αž™αž˜αžΆαž“αž—αžΆαž–αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαž—αŸ’αž‡αžΆαž”αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžαŸ’αž˜αžΈαž‘αŸ…αž€αžΆαž“αŸ‹ API αŸ”

αž§αž”αž˜αžΆαžαžΆαž’αŸ’αž“αž€αž˜αžΆαž“αžαžαžŠαŸ‚αž›αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αžΆαžšαžŠαžΎαž˜αŸ’αž”αžΈαžšαž€αŸ’αžŸαžΆαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‡αžΆαž…αŸ’αžšαžΎαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžαŸ‚αž˜αž½αž™ (αž“αž·αž„αž“αŸ…αž€αŸ’αž“αž»αž„αž˜αž½αž™αž…αŸ†αž“αž½αž“αžαŸ’αž˜αžΈ) αŸ” αž€αžΆαž›αž–αžΈαž˜αž»αž“ αž™αžΎαž„αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž”αžŽαŸ’αžαž»αŸ†αžŠαŸ‚αž›αž’αž“αž»αžœαžαŸ’αž set-API αž αžΎαž™αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž˜αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‡αžΌαž“αžŠαŸ†αžŽαžΉαž„αž’αŸ†αž–αžΈαž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αŸ” αž₯αž‘αžΌαžœαž“αŸαŸ‡αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž˜αŸαž”αž‰αŸ’αž‡αžΌαž“αž–αŸαžαŸŒαž˜αžΆαž“αžαŸ’αž˜αžΈαŸ—αž‘αŸ…αž€αžΆαž“αŸ‹αž”αŸ’αžšαž’αžΆαž“αž”αž‘ αž αžΎαž™αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαžŠαŸ‚αž›αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž’αžΆαž“αžœαžΆαŸ” αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžαŸ’αž˜αžΈαž˜αž½αž™αž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αžαŸ’αž›αž½αž“ - αž™αžΎαž„αž”αžΆαž“αž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αžœαžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž’αžΆαž“αž”αž‘αŸ” αž”αžΆαž‘/αž…αžΆαžŸ αž€αŸαž‡αžΆαž€αž‰αŸ’αž…αž”αŸ‹αžŠαŸ‚αžš αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŸαžΆαž˜αž‰αŸ’αž‰αž‡αžΆαž„αŸ”

αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž§αž”αž€αžšαžŽαŸαžŸαž„αž”αŸ’αžšαžΆαž€αŸ‹αžœαž·αž‰ αžŠαŸ‚αž›αž‡αžΆαž”αŸ†αžŽαŸ‚αž€αž“αŸƒ BOB αžœαžΆαž„αžΆαž™αžŸαŸ’αžšαž½αž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž™αžΎαž„αž€αŸ’αž“αž»αž„αž€αžΆαžšαžšαž€αŸ’αžŸαžΆαž–αž½αž€αžœαžΆαž±αŸ’αž™αž’αŸ’αžœαžΎαžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜αžαžΆαž˜αžšαž™αŸˆ Kafka αŸ” αž€αžΆαžšαž‘αžΌαž‘αžΆαžαŸ‹αž“αž·αž™αžΆαž™αžαžΆαž”αŸ’αžšαžΆαž€αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαž‚αž›αŸ‹αž‡αžΌαž“αžœαž·αž‰αŸ– BOB, RT αž”αžΆαž“αžšαž€αžƒαžΎαž‰αž’αŸ†αž–αžΈαž”αž‰αŸ’αž αžΆαž“αŸαŸ‡ αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžŸαŸ’αžαžΆαž“αž—αžΆαž–αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸ αžŸαŸαžœαžΆαžŸαžΆαžšαž–αžΎαž–αž“αŸ’αž’αž”αžΆαž“αžšαž€αžƒαžΎαž‰αž’αŸ†αž–αžΈαž”αž‰αŸ’αž αžΆαž“αŸαŸ‡ αž“αž·αž„αž”αžΆαž“αž…αŸαž‰αž˜αžΌαž›αž”αŸ’αž”αž‘αžΆαž“αž”αŸαžαŸ’αžšαŸ”

αž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž§αž”αž€αžšαžŽαŸαž”αž„αŸ’αžœαž·αž›αžŸαž„αž‡αžΆαž˜αž½αž™ API αž’αžŸαž˜αž€αžΆαž›αž“αŸ…αž›αžΎ Kafka

αž™αžΎαž„αž˜αžΆαž“αž‚αž˜αŸ’αžšαŸ„αž„αž”αž„αŸ’αž€αžΎαžαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž‡αžΌαž“αžŠαŸ†αžŽαžΉαž„αž”αž„αŸ’αžšαž½αž”αž”αž„αŸ’αžšαž½αž˜αžŠαŸ‚αž›αž“αžΉαž„αž‡αžΌαž“αžŠαŸ†αžŽαžΉαž„αžŠαž›αŸ‹αž’αžαž·αžαž·αž‡αž“αž’αŸ†αž–αžΈαž–αŸαžαŸŒαž˜αžΆαž“αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž‘αž·αž‰/αž€αžΆαžšαžαŸ’αžšαž‘αž”αŸ‹αž˜αž€αžœαž·αž‰αžšαž”αžŸαŸ‹αž‚αžΆαžαŸ‹αŸ” αž₯αž‘αžΌαžœαž“αŸαŸ‡αž€αžΆαžšαž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαžΈαž€αžšαžΆαž›αžŠαžΆαž›αžšαžœαžΆαž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αŸ” αžœαžΆαž“αžΉαž„αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž–αž½αž€αž™αžΎαž„αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž„αŸ’αžšαŸ€αž“αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž‡αžΌαž“αžŠαŸ†αžŽαžΉαž„αžŠαžΎαž˜αŸ’αž”αžΈαž…αžΆαž”αŸ‹αž™αž€αž–αŸαžαŸŒαž˜αžΆαž“αž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αž–αžΈ Kafka αž αžΎαž™αž†αŸ’αž›αžΎαž™αžαž”αž‘αŸ…αžœαžΆ (αž“αž·αž„αž”αž·αž‘αž€αžΆαžšαž‡αžΌαž“αžŠαŸ†αžŽαžΉαž„αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž•αŸ’αžŸαŸαž„αž‘αŸ€αž)αŸ” αž‚αŸ’αž˜αžΆαž“αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž˜αžΈαž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αžΆαž˜αž‘αžΆαžšαŸ”

αž‡αŸ†αžšαž»αž‰αž‘αž·αž“αŸ’αž“αž“αŸαž™

αž–αŸαžαŸŒαž˜αžΆαž“αžšαžœαžΆαž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž€αŸ’αž›αžΆαž™αž‡αžΆαžαž˜αŸ’αž›αžΆαž—αžΆαž– - αž˜αž·αž“αžαžΆ "αžŸαž αž‚αŸ’αžšαžΆαžŸαž”αž„αŸ’αž αžΌαžšαžˆαžΆαž˜" αž”αŸ‚αž”αžŽαžΆαžŠαŸ‚αž›αž’αŸ’αž“αž€αž˜αžΆαž“ αž αžΎαž™αž˜αž·αž“αžαžΆαž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž’αŸ’αž›αžΆαž€αŸ‹αž…αž»αŸ‡αž™αŸ‰αžΆαž„αžŽαžΆαž“αŸ„αŸ‡αž‘αŸαŸ” Lamoda αž˜αžΆαž“αž“αžΆαž™αž€αžŠαŸ’αž‹αžΆαž“αžœαž·αž—αžΆαž‚αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αž”αŸ’αžšαž˜αžΌαž›αž‘αž·αž“αŸ’αž“αž“αŸαž™αž–αžΈαž”αŸ’αžšαž–αŸαž“αŸ’αž’ αž αžΎαž™αžŠαžΆαž€αŸ‹αžœαžΆαž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹αžŠαŸ‚αž›αž’αžΆαž…αž”αŸ’αžšαžΎαž‘αžΎαž„αžœαž·αž‰αž”αžΆαž“αž‘αžΆαŸ†αž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜ αž“αž·αž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž†αŸ’αž›αžΆαžαžœαŸƒαŸ” Kafka αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αž–αž½αž€αž‚αŸαž“αžΌαžœαž‘αž·αž“αŸ’αž“αž“αŸαž™αž‡αžΆαž…αŸ’αžšαžΎαž“αž™αŸ‰αžΆαž„αž†αžΆαž”αŸ‹αžšαž αŸαžŸ αž“αž·αž„αžšαž€αŸ’αžŸαžΆαž›αŸ†αž αžΌαžšαž–αŸαžαŸŒαž˜αžΆαž“αž“αŸ„αŸ‡αž±αŸ’αž™αž‘αžΆαž“αŸ‹αžŸαž˜αŸαž™αŸ”

αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž…αž˜αŸ’αž›αž„

αžŸαžΆαžšαž˜αž·αž“αž”αžΆαžαŸ‹αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž’αžΆαž“αžŠαžΌαž…αž€αŸ’αž“αž»αž„ RabbitMQ αž‘αŸαŸ” αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž˜αž½αž™αž˜αžΆαž“αž–αŸαžαŸŒαž˜αžΆαž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž™αžΎαž„αž˜αžΆαž“αž”αŸ’αžšαžœαžαŸ’αžαž·αž“αŸƒαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžαŸ’αž˜αžΈαŸ—αž…αŸ†αž–αŸ„αŸ‡αžœαžαŸ’αžαž» αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž…αž„αŸ‹αž”αžΆαž“ αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‘αžΆαŸ†αž„αž“αŸαŸ‡αŸ”

αžšαž™αŸˆαž–αŸαž›αž“αŸƒαž€αžΆαžšαž•αŸ’αž‘αž»αž€αž“αŸƒαž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž…αž˜αŸ’αž›αž„αž’αžΆαžŸαŸ’αžšαŸαž™αž‘αŸ…αž›αžΎαž’αžΆαŸ†αž„αžαž„αŸ‹αžŸαŸŠαžΈαžαŸαž“αŸƒαž€αžΆαžšαžŸαžšαžŸαŸαžšαž‘αŸ…αž€αžΆαž“αŸ‹αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž“αŸαŸ‡ Kafka αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž€αŸ†αžŽαžαŸ‹αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžŠαŸ„αž™αž”αžαŸ‹αž”αŸ‚αž“αž›αžΎαž–αŸαž›αžœαŸαž›αžΆαž•αŸ’αž‘αž»αž€ αž“αž·αž„αž”αžšαž·αž˜αžΆαžŽαž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž’αžΆαž“αž”αž‘αžŠαŸ‚αž›αž–αžΉαž„αž•αŸ’αž’αŸ‚αž€αžαŸ’αž›αžΆαŸ†αž„ αžœαžΆαž˜αžΆαž“αžŸαžΆαžšαŸˆαžŸαŸ†αžαžΆαž“αŸ‹αžŠαŸ‚αž›αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž˜αžΆαž“αž–αŸαž›αžœαŸαž›αžΆαžŠαžΎαž˜αŸ’αž”αžΈαž’αžΆαž“αž–αŸαžαŸŒαž˜αžΆαž“αž˜αž»αž“αž–αŸαž›αžœαžΆαž”αžΆαžαŸ‹ αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžŠαŸ‚αž›αž˜αž·αž“αž’αžΆαž…αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αžΆαž“αž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž›αžαŸ’αž›αžΈαž€αŸαžŠαŸ„αž™αŸ” αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆαžœαžΆαž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“αžŠαžΎαž˜αŸ’αž”αžΈαžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ αž―αž€αžαžΆαž“αŸƒαžαŸ’αž„αŸƒαžŠαŸ‚αž›αž–αž·αžαž‡αžΆαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαŸ”

αž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž§αž”αž€αžšαžŽαŸαž”αž„αŸ’αžœαž·αž›αžŸαž„αž‡αžΆαž˜αž½αž™ API αž’αžŸαž˜αž€αžΆαž›αž“αŸ…αž›αžΎ Kafka

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€ αž€αžΆαžšαžšαŸ€αž”αžšαžΆαž”αŸ‹αž‘αžΎαž„αžœαž·αž‰αž”αž“αŸ’αžαž·αž…αž“αŸƒαž―αž€αžŸαžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αžŠαŸ‚αž›αž˜αž·αž“αžŸαŸŠαžΆαŸ†αž‡αžΆαž˜αž½αž™ Kafka (αžšαžΌαž”αž—αžΆαž–αž€αŸαž˜αž€αž–αžΈαž―αž€αžŸαžΆαžšαž•αž„αžŠαŸ‚αžš)

AMQP αž˜αžΆαž“αž‡αž½αžšαŸ– αž™αžΎαž„αžŸαžšαžŸαŸαžšαžŸαžΆαžšαž‘αŸ…αž‡αž½αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αžαž·αžαž·αž‡αž“αŸ” αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆ αž‡αž½αžšαž˜αž½αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž˜αž½αž™αžŠαŸ‚αž›αž˜αžΆαž“αžαž€αŸ’αž€αžœαž·αž‡αŸ’αž‡αžΆαž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜αžŠαžΌαž…αž‚αŸ’αž“αžΆαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αžΆαžšαž‡αžΌαž“αžŠαŸ†αžŽαžΉαž„αžŠαž›αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‡αžΆαž…αŸ’αžšαžΎαž“ αž’αŸ’αž“αž€αž’αžΆαž…αž”αž„αŸ’αžšαŸ€αž“αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž±αŸ’αž™αžŸαžšαžŸαŸαžšαž‘αŸ…αž‡αž½αžšαž‡αžΆαž…αŸ’αžšαžΎαž“ αž¬αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž™αž“αŸ’αžαž€αžΆαžš fanout αžŠαŸ‚αž›αž€αŸ’αž›αžΌαž“αž–αž½αž€αžœαžΆαžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„αŸ”

Kafka αž˜αžΆαž“αž’αžšαžΌαž”αžΈαžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆ αž”αŸ’αžšαž’αžΆαž“αž”αž‘αžŠαŸ‚αž›αž’αŸ’αž“αž€αžŸαžšαžŸαŸαžšαžŸαžΆαžš αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž–αž½αž€αž‚αŸαž˜αž·αž“αž”αžΆαžαŸ‹αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž’αžΆαž“αŸ” αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ αž“αŸ…αž–αŸαž›αž’αŸ’αž“αž€αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ… Kafka αž’αŸ’αž“αž€αž‘αž‘αž½αž›αž”αžΆαž“αžŸαžΆαžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž αžΎαž™αž˜αžΆαž“αž‡αž˜αŸ’αžšαžΎαžŸαžŠαžΎαž˜αŸ’αž”αžΈαžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž€αž“αŸ’αž›αŸ‚αž„αžŠαŸ‚αž›αž’αŸ’αž“αž€αž…αžΆαž€αž…αŸαž‰αŸ” αž“αŸ„αŸ‡αž‚αžΊαž’αŸ’αž“αž€αž’αžΆαž“αžαžΆαž˜αž›αŸ†αžŠαžΆαž”αŸ‹αž›αŸ†αžŠαŸ„αž™ αž’αŸ’αž“αž€αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž˜αž·αž“αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αžŸαžΆαžšαžαžΆαž”αžΆαž“αž’αžΆαž“αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž›αŸαžαžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αžŠαŸ‚αž›αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž’αŸ’αž“αž€αž’αžΆαž…αž”αž“αŸ’αžαž€αžΆαžšαž’αžΆαž“αž”αžΆαž“αŸ” αž›αŸαžαžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αžŠαŸ‚αž›αž’αŸ’αž“αž€αž”αžΆαž“αž‘αžΌαž‘αžΆαžαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž αŸ…αžαžΆ αž’αž»αž αŸ’αžœαžŸαž·αž αž αžΎαž™αž™αž“αŸ’αžαž€αžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αžΌαž‘αžΆαžαŸ‹αžŸαž„αžŸαžΉαž€αŸ”

αžŠαžΌαž…αŸ’αž“αŸ„αŸ‡αž αžΎαž™αžαž€αŸ’αž€αžœαž·αž‡αŸ’αž‡αžΆαž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαŸ” αž§αž‘αžΆαž αžšαžŽαŸ αž™αžΎαž„αž˜αžΆαž“ BOB αž€αŸ’αž“αž»αž„ 4 αž€αžšαžŽαžΈαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž‘αŸαžŸαž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆ - Lamoda αžŸαŸ’αžαž·αžαž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž‘αŸαžŸαžšαž»αžŸαŸ’αžŸαŸŠαžΈ αž€αžΆαž αŸ’αžŸαžΆαž€αŸ‹αžŸαŸ’αžαžΆαž“ αž’αŸŠαž»αž™αž€αŸ’αžšαŸ‚αž“ αž”αŸαž‘αžΆαžšαž»αžŸαŸ’αžŸαŸ” αžŠαŸ„αž™αžŸαžΆαžšαž–αž½αž€αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αžŠαŸ„αž™αž‘αŸ‚αž€αž–αžΈαž‚αŸ’αž“αžΆ αž–αž½αž€αž‚αŸαž˜αžΆαž“αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžαž»αžŸαž‚αŸ’αž“αžΆαž”αž“αŸ’αžαž·αž…αž”αž“αŸ’αžαž½αž… αž“αž·αž„αžαž€αŸ’αž€αžœαž·αž‡αŸ’αž‡αžΆαž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαŸ” αž™αžΎαž„β€‹αž”αž„αŸ’αž αžΆαž‰β€‹αž€αŸ’αž“αž»αž„β€‹αžŸαžΆαžšβ€‹αžŠαŸ‚αž›β€‹αžœαžΆβ€‹αžŸαŸ†αžŠαŸ…β€‹αž‘αŸ…β€‹αž”αŸ’αžšαž‘αŸαžŸβ€‹αžŽαžΆαŸ” αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ BOB αž“αžΈαž˜αž½αž™αŸ—αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž‘αŸαžŸαž“αžΈαž˜αž½αž™αŸ—αž’αžΆαž“αž‡αžΆαž˜αž½αž™ groupId αž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆ αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžŸαžΆαžšαž“αŸ„αŸ‡αž˜αž·αž“αž’αž“αž»αžœαžαŸ’αžαž…αŸ†αž–αŸ„αŸ‡αž–αž½αž€αž‚αŸαž‘αŸ αž–αž½αž€αž‚αŸαžšαŸ†αž›αž„αžœαžΆ αž–αŸ„αž›αž‚αžΊαž§αŸ” αž‘αžΌαž‘αžΆαžαŸ‹αž—αŸ’αž›αžΆαž˜αŸ— αž’αž»αž αŸ’αžœαžŸαž·αž +1 αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž”αŸ’αžšαž’αžΆαž“αž”αž‘αžŠαžΌαž…αž‚αŸ’αž“αžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αžΆαž“αžŠαŸ„αž™αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž‘αžΌαž‘αžΆαžαŸ‹αžšαž”αžŸαŸ‹αž™αžΎαž„ αž“αŸ„αŸ‡αžœαžΆαž’αŸ’αžœαžΎαžŠαžΌαž…αŸ’αž“αŸαŸ‡αž‡αžΆαž˜αž½αž™αž€αŸ’αžšαž»αž˜αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€ αž αžΎαž™αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž’αž»αž αŸ’αžœαžŸαž·αžαž˜αž·αž“αž”αŸ’αžšαžŸαž–αŸ’αžœαž‚αŸ’αž“αžΆαž‘αŸαŸ”

αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαŸ–

  • αž—αžΆαž–αž–αŸαž‰αž›αŸαž‰αž“αŸƒαž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ” αžαŸ’αž‰αž»αŸ†β€‹αž…αž„αŸ‹β€‹αž±αŸ’αž™β€‹αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸβ€‹αž“αŸαŸ‡β€‹αž˜αžΆαž“β€‹αž‘αž·αž“αŸ’αž“αž“αŸαž™β€‹αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹β€‹αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αž±αŸ’αž™β€‹αžœαžΆβ€‹αž’αžΆαž…β€‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšβ€‹αž”αžΆαž“αŸ”

  • αžŸαž»αž…αžšαž·αžαž—αžΆαž–αŸ” αž™αžΎαž„αž”αŸ’αžšαž‚αž›αŸ‹αž‘αŸ…αž±αŸ’αž™ Events-bus αž“αžΌαžœαž€αžΆαžšαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αžαžΆαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž‚αžΊαžŸαŸ’αžšαž” αž αžΎαž™αžœαžΆαž’αžΆαž…αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžœαžΆαž”αžΆαž“αŸ”
  • αž›αŸ†αžŠαžΆαž”αŸ‹αž‚αžΊαžŸαŸ†αžαžΆαž“αŸ‹αŸ” αž€αŸ’αž“αž»αž„β€‹αž€αžšαžŽαžΈβ€‹αžαŸ’αžšαž‘αž”αŸ‹β€‹αž˜αž€β€‹αžœαž·αž‰ αž™αžΎαž„β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αž„αŸ’αžαŸ†β€‹αž²αŸ’αž™β€‹αž’αŸ’αžœαžΎβ€‹αž€αžΆαžšβ€‹αž‡αžΆαž˜αž½αž™β€‹αž“αžΉαž„β€‹αž”αŸ’αžšαžœαžαŸ’αžαž·αžŸαžΆαžŸαŸ’αžαŸ’αžšαŸ” αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž‡αžΌαž“αžŠαŸ†αžŽαžΉαž„ αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž‘αž·αž‰αž˜αž·αž“αžŸαŸ†αžαžΆαž“αŸ‹αž‘αŸ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž–αž½αž€αžœαžΆαž‡αžΆαž€αžΆαžšαž‡αžΌαž“αžŠαŸ†αžŽαžΉαž„αžŠαžΌαž…αž‚αŸ’αž“αžΆ αž’αŸŠαžΈαž˜αŸ‚αž›αž“αžΉαž„αžŠαžΌαž…αž‚αŸ’αž“αžΆ αžŠαŸ„αž™αž˜αž·αž“αž‚αž·αžαž–αžΈαž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž‘αž·αž‰αžŽαžΆαž˜αž½αž™αž”αžΆαž“αž˜αž€αžŠαž›αŸ‹αž˜αž»αž“αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž“αŸƒαž€αžΆαžšαž”αž„αŸ’αžœαž·αž›αžŸαž„αžœαž·αž‰ αž˜αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž…αŸ’αž”αžΆαžŸαŸ‹αž›αžΆαžŸαŸ‹ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž™αžΎαž„αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž‘αž·αž‰ αž€αžΆαžšαž›αžΎαž€αž›αŸ‚αž„αž“αžΉαž„αž€αžΎαžαž‘αžΎαž„ αž€αžΆαžšαž”αž„αŸ’αžœαž·αž›αžŸαž„αž“αžΉαž„αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαž αž¬αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αŸ αž™αžΎαž„αž“αžΉαž„αž”αž‰αŸ’αž…αž”αŸ‹αž€αŸ’αž“αž»αž„αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž•αŸ’αžŸαŸαž„αŸ”
  • αž—αžΆαž–αž‡αžΆαž”αŸ‹αž›αžΆαž”αŸ‹αŸ” αž™αžΎαž„αž˜αžΆαž“αž αžΆαž„αž˜αž½αž™ αž αžΎαž™αž₯αž‘αžΌαžœαž“αŸαŸ‡αž™αžΎαž„αž”αž„αŸ’αž€αžΎαžαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž‡αŸ†αž“αž½αžŸαž±αŸ’αž™ API αŸ” αž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαž˜αž’αŸ’αž™αŸ„αž”αžΆαž™αžŠαžΎαž˜αŸ’αž”αžΈαž”αž‰αŸ’αž‡αžΌαž“αž–αŸαžαŸŒαž˜αžΆαž“αž™αŸ‰αžΆαž„αž†αžΆαž”αŸ‹αžšαž αŸαžŸ αž“αž·αž„αžαŸ„αž€αž’αŸ†αž–αžΈαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαžαŸ’αž˜αžΈαŸ— αž“αž·αž„αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‘αŸ…αž€αžΆαž“αŸ‹αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžšαž”αžŸαŸ‹αž™αžΎαž„αžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžšαžΆαž”αŸ‹αŸ” αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαž˜αŸ’αžšαŸαž…αžαžΆαž˜αžšαž™αŸˆαž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž‘αžΌαž‘αŸ…αž“αŸ…αž€αŸ’αž“αž»αž„αžƒαŸ’αž›αžΆαŸ†αž„ git αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€ αž“αž·αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž”αž„αŸ’αž€αžΎαžαž€αžΌαžŠαŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž’αžαž·αžαž·αž‡αž“ αž“αž·αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαž˜αŸ’αžšαž”αžŸαž˜αŸ’αžšαž½αž›αŸ”

Kafka αž“αŸ… Lamoda

αž™αžΎαž„αž˜αžΆαž“αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„ Kafka αž…αŸ†αž“αž½αž“αž”αžΈαŸ–

  1. αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»;
  2. R&D;
  3. αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ - αž‘αžΆαž“αž€αŸ’αžšαž»αž„αŸ”

αžαŸ’αž„αŸƒαž“αŸαŸ‡αž™αžΎαž„αž“αž·αž™αžΆαž™αžαŸ‚αž…αŸ†αžŽαž»αž…αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” αž“αŸ…αž―αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ - αžšαžαž™αž“αŸ’αžαž€αŸ’αžšαž»αž„αž™αžΎαž„αž˜αž·αž“αž˜αžΆαž“αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αž’αŸ†αžαŸ’αž›αžΆαŸ†αž„αžŽαžΆαžŸαŸ‹ - αžˆαŸ’αž˜αž½αž‰αž€αžŽαŸ’αžαžΆαž› 3 (αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ) αž αžΎαž™αž˜αžΆαž“αžαŸ‚ 27 αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” αžαžΆαž˜αž€αŸ’αž”αž½αž“αž˜αž½αž™αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž‚αžΊαž‡αžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αž½αž™αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž“αŸαŸ‡β€‹αž‡αžΆβ€‹αž…αŸ†αžŽαž»αž…β€‹αžαžΌαž…β€‹αž˜αž½αž™ αž αžΎαž™β€‹αž™αžΎαž„β€‹αž“αžΉαž„β€‹αž”αŸ‰αŸ‡β€‹αžœαžΆβ€‹αž₯αž‘αžΌαžœβ€‹αž“αŸαŸ‡αŸ”

αž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž§αž”αž€αžšαžŽαŸαž”αž„αŸ’αžœαž·αž›αžŸαž„αž‡αžΆαž˜αž½αž™ API αž’αžŸαž˜αž€αžΆαž›αž“αŸ…αž›αžΎ Kafka

αžαžΆαž„αž›αžΎαž‚αžΊαž‡αžΆαž€αŸ’αžšαžΆαž αŸ’αžœ rps αŸ” αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαž„αž”αŸ’αžšαžΆαž€αŸ‹αžœαž·αž‰αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αžŠαŸ„αž™αž”αž“αŸ’αž‘αžΆαžαŸ‹αž–αžŽαŸŒαžαŸ€αžœ (αž”αžΆαž‘ αž˜αž½αž™αž“αŸ…αž›αžΎαž’αŸαž€αŸ’αžŸ X) αž αžΎαž™αž”αž“αŸ’αž‘αžΆαžαŸ‹αž–αžŽαŸŒαž•αŸ’αž€αžΆαžˆαžΌαž€αž‚αžΊαž‡αžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž˜αžΆαžαž·αž€αžΆαŸ”

αž€αžΆαžαžΆαž‘αž»αž€ Lamoda αž˜αžΆαž“αž•αž›αž·αžαž•αž›αžšαžΆαž”αŸ‹αž›αžΆαž“ αž αžΎαž™αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž‚αŸ’αžšαž”αŸ‹αž–αŸαž›αžœαŸαž›αžΆαŸ” αž”αžŽαŸ’αžαž»αŸ†αžαŸ’αž›αŸ‡αž…αŸαž‰αž˜αŸ‰αžΌαžŠ αž˜αŸ‰αžΌαžŠαžαŸ’αž˜αžΈαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž…αŸαž‰αžŠαžΎαž˜αŸ’αž”αžΈαž‡αŸ†αž“αž½αžŸ αž αžΎαž™αž˜αŸ‰αžΌαžŠαŸ‚αž›αžαŸ’αž˜αžΈαž€αŸ†αž–αž»αž„αž›αŸαž…αž‘αžΎαž„αž₯αžαžˆαž”αŸ‹αžˆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžαžΆαž‘αž»αž€αŸ” αž™αžΎαž„αž–αŸ’αž™αžΆαž™αžΆαž˜αž‘αžŸαŸ’αžŸαž“αŸαž‘αžΆαž™αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž“αžΉαž„αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αžαž·αžαž·αž‡αž“αžšαž”αžŸαŸ‹αž™αžΎαž„αž“αŸ…αžαŸ’αž„αŸƒαžŸαŸ’αž’αŸ‚αž€ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž™αžΎαž„αžαŸ‚αž„αžαŸ‚αž‘αž·αž‰αžšαž”αžŸαŸ‹αžαŸ’αž˜αžΈαŸ— αžαžαžšαžΌαž”αž–αž½αž€αž‚αŸ αž“αž·αž„αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž”αŸ’αžšαž’αž”αŸ‹αž”αž„αŸ’αž αžΆαž‰αŸ”

αž€αŸ†αž–αžΌαž›αž–αžŽαŸŒαž•αŸ’αž€αžΆαžˆαžΌαž€αž‚αžΊαž‡αžΆαž€αžΆαžšαž’αžΆαž”αŸ‹αžŠαŸαžαž•αž›αž·αžαž•αž› αž–αŸ„αž›αž‚αžΊαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž•αž›αž·αžαž•αž›αŸ” αžƒαžΎαž‰β€‹αž”αŸ’αžšαž»αžŸβ€‹αŸ—β€‹αžαžβ€‹αžšαžΌαž”β€‹αž‘αŸ€αžβ€‹αž αžΎαž™! - αž”αžΆαž“αž•αŸ’αž‘αž»αž€αž€αž‰αŸ’αž…αž”αŸ‹αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαŸ”

Lamoda Events αž”αŸ’αžšαžΎαž€αžšαžŽαžΈ

αž™αžΎαž„αž”αŸ’αžšαžΎαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αžŠαŸ‚αž›αž”αžΆαž“αžŸαžΆαž„αžŸαž„αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸˆ

  • αž€αžΆαžšαžαžΆαž˜αžŠαžΆαž“αžŸαŸ’αžαžΆαž“αž—αžΆαž–αžαŸ’αžšαž‘αž”αŸ‹αž˜αž€αžœαž·αž‰αŸ– αž€αžΆαžšαž αŸ…αž‘αŸ…αžŸαž€αž˜αŸ’αž˜αž—αžΆαž– αž“αž·αž„αž€αžΆαžšαžαžΆαž˜αžŠαžΆαž“αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž–αžΈαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ” αž€αžΆαžšαž‘αžΌαž‘αžΆαžαŸ‹ αžŸαŸ’αžαžΆαž“αž—αžΆαž–αžŸαžΆαžšαž–αžΎαž–αž“αŸ’αž’ αž€αžΆαžšαž‡αžΌαž“αžŠαŸ†αžŽαžΉαž„αŸ” αž“αŸ…αž‘αžΈαž“αŸαŸ‡ αž™αžΎαž„αž”αžΆαž“αžŸαžΆαž€αž›αŸ’αž”αž„αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αž αž”αž„αŸ’αž€αžΎαžαž§αž”αž€αžšαžŽαŸ αž”αŸ’αžšαž˜αžΌαž›αž€αŸ†αž αž»αžŸαž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αžŸαžšαžŸαŸαžšαž―αž€αžŸαžΆαžš αž“αž·αž„αž”αŸ’αžšαžΆαž”αŸ‹αžŸαž αž€αžΆαžšαžΈαžšαž”αžŸαŸ‹αž™αžΎαž„αž–αžΈαžšαž”αŸ€αž”αž”αŸ’αžšαžΎαžœαžΆαŸ”
  • αž€αžΆαžšαž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž€αžΆαžαž•αž›αž·αžαž•αž›αŸ– αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ αž‘αž·αž“αŸ’αž“αž“αŸαž™αž˜αŸαžαžΆ αž›αž€αŸ’αžαžŽαŸˆαŸ” αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž˜αž½αž™αž’αžΆαž“ (αžŠαŸ‚αž›αž”αž„αŸ’αž αžΆαž‰) αž“αž·αž„αžŸαžšαžŸαŸαžšαž‡αžΆαž…αŸ’αžšαžΎαž“αŸ”
  • αž’αŸŠαžΈαž˜αŸ‚αž› αž‡αŸ†αžšαž»αž‰ αž“αž·αž„αž•αŸ’αž‰αžΎαžŸαžΆαžš: αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž‘αž·αž‰αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαž˜αžΌαž›, αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž‘αž·αž‰αž”αžΆαž“αž˜αž€αžŠαž›αŸ‹, αž€αžΆαžšαžαŸ’αžšαž‘αž”αŸ‹αž˜αž€αžœαž·αž‰αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αž‘αž½αž›αž™αž€, αž›, αž˜αžΆαž“αž…αŸ’αžšαžΎαž“αž“αŸƒαž–αž½αž€αž‚αŸαŸ”
  • αž€αžΆαžšαžŸαŸ’αžαž»αž€αž‘αž»αž€ αž€αžΆαžšαž”αž“αŸ’αžαžƒαŸ’αž›αžΆαŸ†αž„ - αž€αžΆαžšαž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž”αžšαž·αž˜αžΆαžŽαž“αŸƒαž’αžΆαžαž»αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž‡αžΆαž›αŸαžαŸ– αž€αžΆαžšαž˜αž€αžŠαž›αŸ‹αžƒαŸ’αž›αžΆαŸ†αž„αžαŸ’αžšαž‘αž”αŸ‹αž˜αž€αžœαž·αž‰αŸ” αžœαžΆαž…αžΆαŸ†αž”αžΆαž…αŸ‹αžŠαŸ‚αž›αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αž€αžΆαžšαž€αž€αŸ‹αž‘αŸ†αž“αž·αž‰αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž‘αž·αž“αŸ’αž“αž“αŸαž™αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž”αŸ†αž•αž»αžαŸ” αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž“αŸαŸ‡ αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž—αžΆαž‚αž αŸŠαž»αž“αž‚αžΊαžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αžŽαžΆαžŸαŸ‹ Kafka αž“αžΉαž„αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž„αžΆαž™αžŸαŸ’αžšαž½αž›αŸ”
  • αž€αžΆαžšαžœαž·αž—αžΆαž‚β€‹αž‘αž·αž“αŸ’αž“αž“αŸαž™ (αž“αžΆαž™αž€αžŠαŸ’αž‹αžΆαž“ R&D), αž§αž”αž€αžšαžŽαŸ ML, αž€αžΆαžšαžœαž·αž—αžΆαž‚, αžŸαŸ’αžαž·αžαž·αŸ” αž™αžΎαž„αž…αž„αŸ‹αž±αŸ’αž™αž–αŸαžαŸŒαž˜αžΆαž“αž˜αžΆαž“αžαž˜αŸ’αž›αžΆαž—αžΆαž– - Kafka αž‚αžΊαžŸαž˜αžšαž˜αŸ’αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαžΏαž„αž“αŸαŸ‡αŸ”

αž₯αž‘αžΌαžœαž“αŸαŸ‡αž•αŸ’αž“αŸ‚αž€αž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαž’αŸ†αž–αžΈαžšαžŠαž·αž”αžšαžŠαž»αž”αž’αŸ† αŸ— αž“αž·αž„αž€αžΆαžšαžšαž€αžƒαžΎαž‰αž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαžŠαŸ‚αž›αž”αžΆαž“αž€αžΎαžαž‘αžΎαž„αž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž›αž”αŸ’αžšαžΆαŸ†αž˜αž½αž™αžαŸ‚αž€αž“αŸ’αž›αž„αž˜αž€αž“αŸαŸ‡αŸ”

αž”αž‰αŸ’αž αžΆαžšαž…αž“αžΆ

αž…αžΌαžšαž“αž·αž™αžΆαž™αžαžΆαž™αžΎαž„αž…αž„αŸ‹αž’αŸ’αžœαžΎαžšαžΏαž„αžαŸ’αž˜αžΈ - αž§αž‘αžΆαž αžšαžŽαŸαž•αŸ’αž‘αŸαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž…αŸ‚αž€αž…αžΆαž™αž‘αžΆαŸ†αž„αž˜αžΌαž›αž‘αŸ… Kafka αŸ” αž₯αž‘αžΌαžœαž“αŸαŸ‡αž•αŸ’αž“αŸ‚αž€αž“αŸƒαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž“αŸ…αž€αŸ’αž“αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αŸ†αžŠαžΆαž”αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„ BOB αŸ” αž˜αžΆαž“αž‚αŸ†αžšαžΌαžŸαŸ’αžαžΆαž“αž—αžΆαž–αž“αŸ…αž–αžΈαž€αŸ’αžšαŸ„αž™αž€αžΆαžšαž•αŸ’αž‘αŸαžšαž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž‘αž·αž‰αž‘αŸ…αž€αžΆαž“αŸ‹αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžŠαžΉαž€αž‡αž‰αŸ’αž‡αžΌαž“ αž…αž›αž“αžΆαž‘αŸ…αž€αžΆαž“αŸ‹αžƒαŸ’αž›αžΆαŸ†αž„αž€αž˜αŸ’αžšαž·αžαž˜αž’αŸ’αž™αž˜αŸ”αž›αŸ” αž˜αžΆαž“ monolith αž‘αžΆαŸ†αž„αž˜αžΌαž› αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αž–αžΈαžš αžšαž½αž˜αž‘αžΆαŸ†αž„ APIs αž‡αžΆαž…αŸ’αžšαžΎαž“αžŠαŸ‚αž›αž§αž‘αŸ’αž‘αž·αžŸαžŠαž›αŸ‹αž€αžΆαžšαžŠαžΉαž€αž‡αž‰αŸ’αž‡αžΌαž“αŸ” αž–αž½αž€αž‚αŸαžŠαžΉαž„αž…αŸ’αžšαžΎαž“αž’αŸ†αž–αžΈαž€αžΆαžšαžŠαžΉαž€αž‡αž‰αŸ’αž‡αžΌαž“αŸ”

αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆαžαŸ†αž”αž“αŸ‹αžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž‘αž·αž‰αž“αŸ…αž€αŸ’αž“αž»αž„ BOB αž“αž·αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαžΉαž€αž‡αž‰αŸ’αž‡αžΌαž“αž˜αžΆαž“αžŸαŸ’αžαžΆαž“αž—αžΆαž–αžαž»αžŸαŸ—αž‚αŸ’αž“αžΆαŸ” αž§αž‘αžΆαž αžšαžŽαŸ αžŸαŸαžœαžΆαž“αžΆαŸ†αžŸαŸ†αž”αž»αžαŸ’αžšαž˜αž½αž™αž…αŸ†αž“αž½αž“αž˜αž·αž“αž•αŸ’αž‰αžΎαžŸαŸ’αžαžΆαž“αž—αžΆαž–αž€αž˜αŸ’αžšαž·αžαž˜αž’αŸ’αž™αž˜αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αžΆαž“αžαŸ‚αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ– "αž”αžΆαž“αž”αŸ’αžšαž‚αž›αŸ‹" ឬ "αž”αžΆαžαŸ‹"αŸ” αž’αŸ’αž“αž€αž•αŸ’αžŸαŸαž„αž‘αŸ€αž αž•αŸ’αž‘αž»αž™αž‘αŸ…αžœαž·αž‰ αžšαžΆαž™αž€αžΆαžšαžŽαŸαž™αŸ‰αžΆαž„αž›αž˜αŸ’αž’αž·αžαž’αŸ†αž–αžΈαž…αž›αž“αžΆαž“αŸƒαž‘αŸ†αž“αž·αž‰αŸ” αž˜αž“αž»αžŸαŸ’αžŸαž‚αŸ’αžšαž”αŸ‹αžšαžΌαž”αž˜αžΆαž“αž…αŸ’αž”αžΆαž”αŸ‹αžŸαž»αž–αž›αž—αžΆαž–αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαŸ– αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αžαŸ’αž›αŸ‡ αž’αŸŠαžΈαž˜αŸ‚αž›αž˜αžΆαž“αžŸαž»αž–αž›αž—αžΆαž– αžŠαŸ‚αž›αž˜αžΆαž“αž“αŸαž™αžαžΆαžœαžΆαž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž•αŸ’αžŸαŸαž„αž‘αŸ€αž αžœαžΆαž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž‘αž·αž‰αž“αžΉαž„αž“αŸ…αžαŸ‚αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž–αŸ’αžšαŸ„αŸ‡αž˜αžΆαž“αž›αŸαžαž‘αžΌαžšαžŸαŸαž–αŸ’αž‘αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„ αž αžΎαž™αž“αžšαžŽαžΆαž˜αŸ’αž“αžΆαž€αŸ‹αž“αžΉαž„αž“αž·αž™αžΆαž™αžαžΆαž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž‘αž·αž‰αž”αŸ‚αž”αž“αŸαŸ‡αž“αžΉαž„αž˜αž·αž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αžΆαž›αŸ‹αžαŸ‚αžŸαŸ„αŸ‡αŸ”

αžŸαŸ’αž‘αŸ’αžšαžΈαž˜αž‘αž·αž“αŸ’αž“αž“αŸαž™

αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈ Kafka αžŸαŸ†αžŽαž½αžšαž“αŸƒαž€αžΆαžšαžšαŸ€αž”αž…αŸ†αž›αŸ†αž αžΌαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αžΎαžαž‘αžΎαž„αŸ” αž€αž·αž…αŸ’αž…αž€αžΆαžšαž“αŸαŸ‡αž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αž“αžΉαž„αž€αžΆαžšαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž™αž»αž‘αŸ’αž’αžŸαžΆαžŸαŸ’αžαŸ’αžšαžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž…αŸ†αžŽαž»αž…αž‡αžΆαž…αŸ’αžšαžΎαž“ αžαŸ„αŸ‡αž†αŸ’αž›αž„αž€αžΆαžαŸ‹αžœαžΆαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‚αŸ’αž“αžΆαŸ”

αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž˜αž½αž™ αž¬αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆ?

αž™αžΎαž„αž˜αžΆαž“αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž’αŸ†αž–αžΈαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαŸ” αž“αŸ…αž€αŸ’αž“αž»αž„ BOB αž™αžΎαž„αžŸαžšαžŸαŸαžšαžαžΆαž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž‘αž·αž‰αž”αŸ‚αž”αž“αŸαŸ‡ αž…αžΆαŸ†αž”αžΆαž…αŸ‹αžαŸ’αžšαžΌαžœαž”αž‰αŸ’αž‡αžΌαž“ αž αžΎαž™αž…αž„αŸ’αž’αž»αž›αž”αž„αŸ’αž αžΆαž‰αžαžΆ: αž›αŸαžαž”αž‰αŸ’αž‡αžΆαž‘αž·αž‰ αžŸαž˜αžΆαžŸαž—αžΆαž–αžšαž”αžŸαŸ‹αžœαžΆ SKUs αž˜αž½αž™αž…αŸ†αž“αž½αž“ αž“αž·αž„ Bar Code αž‡αžΆαžŠαžΎαž˜αŸ” αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž‘αŸ†αž“αž·αž‰αž˜αž€αžŠαž›αŸ‹αžƒαŸ’αž›αžΆαŸ†αž„ αž€αžΆαžšαžŠαžΉαž€αž‡αž‰αŸ’αž‡αžΌαž“αž“αžΉαž„αž’αžΆαž…αž‘αž‘αž½αž›αž”αžΆαž“αžŸαŸ’αžαžΆαž“αž—αžΆαž– αžαŸ’αžšαžΆαž–αŸαž›αžœαŸαž›αžΆ αž“αž·αž„αž’αŸ’αžœαžΈαŸ—αž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžšαŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€ αž™αžΎαž„αž…αž„αŸ‹αž‘αž‘αž½αž›αž”αžΆαž“αž–αŸαžαŸŒαž˜αžΆαž“αžαŸ’αž˜αžΈαŸ—αž’αŸ†αž–αžΈαž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αŸαŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„ BOBαŸ” αž™αžΎαž„αž˜αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αž‰αŸ’αž…αŸ’αžšαžΆαžŸαž“αŸƒαž€αžΆαžšαž‘αž‘αž½αž›αž‘αž·αž“αŸ’αž“αž“αŸαž™αž–αžΈαž€αžΆαžšαžŠαžΉαž€αž‡αž‰αŸ’αž‡αžΌαž“αŸ” αžαžΎαž“αŸαŸ‡αž‡αžΆαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαžŠαžΌαž…αž‚αŸ’αž“αžΆαž‘αŸ? αž¬β€‹αž“αŸαŸ‡β€‹αž‡αžΆβ€‹αž€αžΆαžšβ€‹αž•αŸ’αž›αžΆαžŸαŸ‹β€‹αž”αŸ’αžαžΌαžšβ€‹αžŠαŸ„αž™β€‹αž‘αŸ‚αž€β€‹αž˜αž½αž™β€‹αžŠαŸ‚αž›β€‹αžŸαž€αŸ’αžαž·β€‹αžŸαž˜β€‹αž“αžΉαž„β€‹αž”αŸ’αžšαž’αžΆαž“β€‹αž”αž‘β€‹αž•αŸ’αž‘αžΆαž›αŸ‹β€‹αžαŸ’αž›αž½αž“?

αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž‘αŸ†αž“αž„αž‡αžΆαž–αž½αž€αž‚αŸαž“αžΉαž„αžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαžαŸ’αž›αžΆαŸ†αž„αžŽαžΆαžŸαŸ‹ αž αžΎαž™αž€αžΆαžšαž›αŸ’αž”αž½αž„αž±αŸ’αž™αž”αž„αŸ’αž€αžΎαžαž”αŸ’αžšαž’αžΆαž“αž”αž‘αž˜αž½αž™αž‚αžΊαž˜αž·αž“αž˜αžΆαž“αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αŸ αž–αŸ’αžšαŸ„αŸ‡αž”αŸ’αžšαž’αžΆαž“αž”αž‘αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αž˜αžΆαž“αž“αŸαž™αžαžΆαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€ αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€ αž‡αŸ†αž“αžΆαž“αŸ‹αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αž“αŸƒαž’αŸ’αžœαžΈαŸ—αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαž€αžΆαžšαž–αž·αžαž‘αŸαŸ”

αžœαžΆαž›αžαŸ’αž˜αžΈ αž¬αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαžαŸ’αž˜αžΈ?

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αŸ„αŸ‡αž”αž‰αŸ’αž αžΆαž˜αž½αž™αž‘αŸ€αžαž€αžΎαžαž‘αžΎαž„αŸ” αž§αž‘αžΆαž αžšαžŽαŸ αž˜αž·αž“αž˜αŸ‚αž“αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž…αŸ‚αž€αž…αžΆαž™αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαž”αŸ’αžšαž—αŸαž‘αž“αŸƒ DTO β€‹β€‹αžŠαŸ‚αž› BOB αž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαž”αžΆαž“αž‘αŸαŸ” αž™αžΎαž„αž•αŸ’αž‰αžΎαž›αŸαžαžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž±αŸ’αž™αž–αž½αž€αž‚αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž–αž½αž€αž‚αŸαž˜αž·αž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžœαžΆαž‘αŸ αž–αžΈαž–αŸ’αžšαŸ„αŸ‡αž–αž½αž€αž‚αŸαž˜αž·αž“αžαŸ’αžšαžΌαžœαž€αžΆαžšαžœαžΆ αž αžΎαž™αžαžΆαž˜αž‘αžŸαŸ’αžŸαž“αŸˆαž“αŸƒαž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžšαžαž™αž“αŸ’αžαž€αŸ’αžšαž»αž„ αžœαžΆαž›αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αžΆαž˜αž‘αžΆαžšαŸ”

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž™αžΎαž„αžŽαŸ‚αž“αžΆαŸ†αž…αŸ’αž”αžΆαž”αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ event-bus αžŠαŸ‚αž›αžœαžΆαž›αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αžΆαž˜αž‘αžΆαžš αž“αŸ„αŸ‡αž™αžΎαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž”αž„αŸ’αžαŸ†αž±αŸ’αž™αž€αŸ†αžŽαžαŸ‹αž…αŸ’αž”αžΆαž”αŸ‹αžŸαž»αž–αž›αž—αžΆαž–αž”αž“αŸ’αžαŸ‚αž˜αž“αŸ…αž€αŸ’αž“αž»αž„ BOB αž¬αž“αŸ…αž€αŸ’αž“αž»αž„ start event handlerαŸ” αžŸαž»αž–αž›αž—αžΆαž–αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžšαžΈαž€αžšαžΆαž›αžŠαžΆαž›αž–αŸαž‰αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ - αž“αŸαŸ‡αž˜αž·αž“αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž‘αŸαŸ”

αž”αž‰αŸ’αž αžΆαž˜αž½αž™αž‘αŸ€αžαž‚αžΊαž€αžΆαžšαž›αŸ’αž”αž½αž„αž±αŸ’αž™αž˜αžΆαž“αž€αžΆαžšαžœαž·αžœαžŒαŸ’αžαž“αŸαž”αž“αŸ’αžαŸ‚αž˜αŸ” αž™αžΎαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž”αŸ’αžšαžΆαž”αŸ‹αžαžΆ αžαŸ’αžšαžΌαžœαž€αžΆαžšαž”αž“αŸ’αžαŸ‚αž˜αž’αŸ’αžœαžΈαž˜αž½αž™αž‘αŸ…αž€αŸ’αž“αž»αž„αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ αž αžΎαž™αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž”αŸ’αžšαžŸαž·αž“αž”αžΎαž™αžΎαž„αž‚αž·αžαž’αŸ†αž–αžΈαžœαžΆ αžœαžΆαž‚αž½αžšαžαŸ‚αž‡αžΆαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αž˜αž½αž™αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ…αž€αŸ’αž“αž»αž„αž‚αŸ’αžšαŸ„αž„αž€αžΆαžšαžŽαŸαžšαž”αžŸαŸ‹αž™αžΎαž„αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αž‚αžΊαž‡αžΆαž”αŸ’αžšαž’αžΆαž“αž”αž‘αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αž˜αž½αž™αŸ” αž”αŸ’αžšαž’αžΆαž“αž”αž‘αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αž˜αž½αž™αž‚αžΊαž‡αžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αžΆαŸ†αž„αž˜αžΌαž›αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž–αž·αž–αžŽαŸŒαž“αžΆαžαžΆαž„αž›αžΎαŸ” αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž›αŸ’αž”αž½αž„αž±αŸ’αž™αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž”αž“αŸ’αžαŸ‚αž˜αžœαžΆαž›αž˜αž½αž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž‘αŸ…αž€αŸ’αž“αž»αž„αž‚αŸ’αžšαŸ„αž„αž€αžΆαžšαžŽαŸ JSON αž αžΎαž™αž”αž„αŸ’αž€αžΎαžαžœαžΆαž‘αžΎαž„αžœαž·αž‰αŸ”

αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž“αŸƒαž€αžΆαžšαžŸαž„αž”αŸ’αžšαžΆαž€αŸ‹αžœαž·αž‰αž™αžΎαž„αž”αžΆαž“αž˜αž€αžŠαž›αŸ‹αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž“αŸƒαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž›αž€αž“αŸ’αž›αŸ‡αž†αŸ’αž“αžΆαŸ†αŸ” αž™αžΎαž„β€‹αž˜αžΆαž“β€‹αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸβ€‹αž˜αŸαžαžΆβ€‹αž˜αž½αž™β€‹αžŠαŸ‚αž›β€‹αž αŸ…β€‹αžαžΆβ€‹αž€αžΆαžšβ€‹αž’αžΆαž”αŸ‹αžŠαŸαžβ€‹αž€αžΆαžšβ€‹αžŸαž„β€‹αž”αŸ’αžšαžΆαž€αŸ‹β€‹αžœαž·αž‰ αžŠαŸ‚αž›β€‹αž˜αžΆαž“β€‹αžœαžΆαž›β€‹αž”αŸ’αžšαž—αŸαž‘β€‹αžŠαŸ‚αž›β€‹αž–αž·αž–αžŽαŸŒαž“αžΆβ€‹αžαžΆβ€‹αž€αžΆαžšβ€‹αž’αžΆαž”αŸ‹αžŠαŸαžβ€‹αž“αŸαŸ‡β€‹αž–αž·αžβ€‹αž‡αžΆβ€‹αž’αŸ’αžœαžΈαŸ” αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž“αŸαŸ‡ αž™αžΎαž„αž˜αžΆαž“αž€αž»αž„αžαžΆαž€αŸ‹ "αž’αžŸαŸ’αž…αžΆαžšαŸ’αž™" αž‡αžΆαž˜αž½αž™αž’αŸ’αž“αž€αž•αŸ’αžαž›αŸ‹αžŸαž»αž–αž›αž—αžΆαž– αžŠαŸ‚αž›αž”αžΆαž“αž”αŸ’αžšαžΆαž”αŸ‹αž™αžΎαž„αž–αžΈαžšαž”αŸ€αž”αž’αŸ’αžœαžΎαž±αŸ’αž™αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž“αŸαŸ‡αž˜αžΆαž“αžŸαž»αž–αž›αž—αžΆαž–αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž”αŸ’αžšαž—αŸαž‘αž“αŸαŸ‡αŸ”

αž€αŸ†αžŽαŸ‚αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ

αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαžŸαž»αž–αž›αž—αžΆαž–αžŸαžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„ Kafka αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžΎ αž”αŸ’αžšαžΆαž€αŸ‹αž’αžΊαžšαŸ‰αžΌαž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž…αžΆαŸ†αž”αžΆαž…αŸ‹αžŠαžΎαž˜αŸ’αž”αžΈαžŠαžΆαž€αŸ‹αž›αžΎαžœαžΆαž—αŸ’αž›αžΆαž˜αŸ— αž αžΎαž™αž”αŸ’αžšαžΎ Confluent αŸ” αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžšαž”αžŸαŸ‹αž™αžΎαž„ αž™αžΎαž„αžαŸ’αžšαžΌαžœαž”αŸ’αžšαž»αž„αž”αŸ’αžšαž™αŸαžαŸ’αž“αž‡αžΆαž˜αž½αž™αž€αŸ†αžŽαŸ‚αž‘αž˜αŸ’αžšαž„αŸ‹αŸ” αžœαžΆαž“αžΉαž„αž˜αž·αž“αžαŸ‚αž„αžαŸ‚αž’αžΆαž…αž’αžΆαž“αžŸαžΆαžšαž‘αžΎαž„αžœαž·αž‰αž–αžΈαž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž…αž˜αŸ’αž›αž„αž”αžΆαž“αž‘αŸ αžŠαŸ„αž™αžŸαžΆαžšαž‚αŸ†αžšαžΌαž˜αžΆαž“ "αž†αŸ’αžœαŸαž„"αŸ” αž‡αžΆαž‘αžΌαž‘αŸ… αžœαžΆαž”αŸ’αžšαŸ‚αž…αŸαž‰αž‡αžΆαž€αŸ†αžŽαŸ‚αž”αž„αŸ’αž€αžΎαž αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž˜αŸ‰αžΌαžŠαŸ‚αž›αž‚αžΊαžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž“αžΉαž„αžαž™αž€αŸ’αžšαŸ„αž™αŸ– αž§αž‘αžΆαž αžšαžŽαŸ αž”αž„αŸ’αž€αžΎαžαžœαžΆαž›αž‡αžΆαž‡αž˜αŸ’αžšαžΎαžŸαž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž—αžΆαž–αžαž»αžŸαž‚αŸ’αž“αžΆαžαŸ’αž›αžΆαŸ†αž„αž–αŸαž€ αž™αžΎαž„αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŸαžšαžŸαŸαžšαž”αŸ’αžšαž’αžΆαž“αž”αž‘αžαŸ’αž˜αžΈ αž αžΎαž™αž•αŸ’αž‘αŸαžšαž’αžαž·αžαž·αž‡αž“αž“αŸ…αž–αŸαž›αž–αž½αž€αž‚αŸαž’αžΆαž“αž’αžαŸ’αžαž”αž‘αž…αžΆαžŸαŸ‹αž…αž”αŸ‹αŸ”

αž’αžΆαž“αžΆαž€αžΆαžšαž’αžΆαž“αž›αŸ†αžŠαžΆαž”αŸ‹αž“αŸƒαž—αžΆαž‚αžαžΆαžŸ

αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž“αŸ…αžαžΆαž„αž€αŸ’αž“αž»αž„ Kafka αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ‚αž„αž…αŸ‚αž€αž‘αŸ…αž‡αžΆαž—αžΆαž‚αžαžΆαžŸαŸ” αž“αŸαŸ‡αž˜αž·αž“αžŸαŸ†αžαžΆαž“αŸ‹αž‘αŸ αžαžŽαŸˆαž–αŸαž›αžŠαŸ‚αž›αž™αžΎαž„αž€αŸ†αž–αž»αž„αžšαž…αž“αžΆαž’αž„αŸ’αž‚αž—αžΆαž– αž“αž·αž„αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž˜αžΆαž“αžŸαžΆαžšαŸˆαžŸαŸ†αžαžΆαž“αŸ‹αž“αŸ…αž–αŸαž›αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž’αŸ†αž–αžΈαžšαž”αŸ€αž”αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ αž“αž·αž„αž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αžœαžΆαŸ”

αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž’αž˜αŸ’αž˜αžαžΆαž’αŸ’αž“αž€αžŸαžšαžŸαŸαžšαž”αŸ’αžšαž’αžΆαž“αž”αž‘αž˜αž½αž™αž“αŸ…αž€αŸ’αž“αž»αž„ Kafka αŸ” αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ αž—αžΆαž‚αžαžΆαžŸαž˜αž½αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎ αž αžΎαž™αžŸαžΆαžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž“αŸαŸ‡αž‘αŸ…αž€αžΆαž“αŸ‹αžœαžΆαŸ” αž αžΎαž™αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž”αžΆαž“αž’αžΆαž“αžŸαžΆαžšαž‘αžΆαŸ†αž„αž“αŸαŸ‡αž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αŸ” αž…αžΌαžšαž“αž·αž™αžΆαž™αžαžΆαž₯αž‘αžΌαžœαž“αŸαŸ‡αž™αžΎαž„αžαŸ’αžšαžΌαžœαž–αž„αŸ’αžšαžΈαž€αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαžΎαž˜αŸ’αž”αžΈαž±αŸ’αž™αžŸαžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αžΆαž“αžŠαŸ„αž™αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž–αžΈαžšαž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆαŸ” αž§αž‘αžΆαž αžšαžŽαŸ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž€αŸ†αž–αž»αž„αž•αŸ’αž‰αžΎαžŸαžΆαžš SMS αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžΆαž”αŸ‹ Kafka αž±αŸ’αž™αž”αž„αŸ’αž€αžΎαžαž—αžΆαž‚αžαžΆαžŸαž”αž“αŸ’αžαŸ‚αž˜ αž αžΎαž™ Kafka αž“αžΉαž„αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž”αŸ†αž”αŸ‚αž€αžŸαžΆαžšαž‡αžΆαž–αžΈαžšαž•αŸ’αž“αŸ‚αž€ - αž–αžΆαž€αŸ‹αž€αžŽαŸ’αžαžΆαž›αž“αŸ…αž‘αžΈαž“αŸαŸ‡ αž–αžΆαž€αŸ‹αž€αžŽαŸ’αžαžΆαž›αž“αŸ…αž‘αžΈαž“αŸαŸ‡αŸ”

តើ Kafka αž”αŸ‚αž„αž…αŸ‚αž€αž–αž½αž€αž‚αŸαžŠαŸ„αž™αžšαž”αŸ€αž”αžŽαžΆ? αžŸαžΆαžšαž“αžΈαž˜αž½αž™αŸ—αž˜αžΆαž“αžαž½αž’αžαŸ’αžαž”αž‘ (αžŠαŸ‚αž›αž™αžΎαž„αžšαž€αŸ’αžŸαžΆαž‘αž»αž€ JSON) αž“αž·αž„αžŸαŸ„αŸ” αž’αŸ’αž“αž€αž’αžΆαž…αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž»αžαž„αžΆαžš hash αž‘αŸ…αžŸαŸ„αž“αŸαŸ‡ αžŠαŸ‚αž›αž“αžΉαž„αž€αŸ†αžŽαžαŸ‹αžαžΆαž—αžΆαž‚αžαžΆαžŸαžŽαžΆαž˜αž½αž™αžŠαŸ‚αž›αžŸαžΆαžšαž“αžΉαž„αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αŸ”

αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžšαž”αžŸαŸ‹αž™αžΎαž„αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž”αž„αŸ’αžœαž·αž›αžŸαž„αžœαž·αž‰ αž“αŸαŸ‡αž‚αžΊαžŸαŸ†αžαžΆαž“αŸ‹αžŽαžΆαžŸαŸ‹ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž™αžΎαž„αž™αž€αž—αžΆαž‚αž–αžΈαžš αž“αŸ„αŸ‡αžœαžΆαž˜αžΆαž“αž±αž€αžΆαžŸαžŠαŸ‚αž›αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž”αŸ‰αžΆαžšαŸ‰αžΆαž‘αŸ‚αž›αž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž‘αžΈαž–αžΈαžšαž˜αž»αž“αžŠαŸ†αž”αžΌαž„ αž αžΎαž™αž“αžΉαž„αž˜αžΆαž“αž”αž‰αŸ’αž αžΆαŸ” αž˜αž»αžαž„αžΆαžš hash αž’αžΆαž“αžΆαžαžΆαžŸαžΆαžšαžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ„αžŠαžΌαž…αž‚αŸ’αž“αžΆαž”αž‰αŸ’αž…αž”αŸ‹αž€αŸ’αž“αž»αž„αž—αžΆαž‚αžαžΆαžŸαžŠαžΌαž…αž‚αŸ’αž“αžΆαŸ”

αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž‘αž›αŸ‹αž“αžΉαž„αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ

αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž”αž‰αŸ’αž αžΆαž˜αž½αž™αž‘αŸ€αžαžŠαŸ‚αž›αž™αžΎαž„αž‡αž½αž”αž”αŸ’αžšαž‘αŸ‡αŸ” αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž‚αžΊαž‡αžΆαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™αŸ– αž™αžΎαž„αž“αž·αž™αžΆαž™αžαžΆαž˜αžΆαž“αž’αŸ’αžœαžΈαž˜αž½αž™αž”αžΆαž“αž€αžΎαžαž‘αžΎαž„αž“αŸ…αž€αž“αŸ’αž›αŸ‚αž„αžŽαžΆαž˜αž½αž™ (something_happened) αž§αž‘αžΆαž αžšαžŽαŸ αž’αžΆαžαž»αž˜αž½αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž›αž»αž”αž…αŸ„αž› αž¬αž€αžΆαžšαžŸαž„αž”αŸ’αžšαžΆαž€αŸ‹αžœαž·αž‰αž”αžΆαž“αž€αžΎαžαž‘αžΎαž„αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž“αžšαžŽαžΆαž˜αŸ’αž“αžΆαž€αŸ‹αžŸαŸ’αžαžΆαž”αŸ‹αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž‘αžΆαŸ†αž„αž“αŸαŸ‡ αž“αŸ„αŸ‡αž™αŸ„αž„αž‘αŸ…αžαžΆαž˜ "αž’αžΆαžαž»αžŠαŸ‚αž›αž”αžΆαž“αž›αž»αž”αž…αŸ„αž›" αž’αž„αŸ’αž‚αž—αžΆαž–αžŸαž„αž”αŸ’αžšαžΆαž€αŸ‹αžœαž·αž‰αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαž αž αžΎαž™ "αž€αžΆαžšαž”αž„αŸ’αžœαž·αž›αžŸαž„αž”αžΆαž“αž€αžΎαžαž‘αžΎαž„" αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαž“αŸ…αž€αž“αŸ’αž›αŸ‚αž„αžŽαžΆαž˜αž½αž™αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αŸ”

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆ αž“αŸ…αž–αŸαž›αž’αŸ’αž“αž€αžšαž…αž“αžΆαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ αž’αŸ’αž“αž€αž˜αž·αž“αž…αž„αŸ‹αžŸαžšαžŸαŸαžšαžœαžΆαžŠαŸ„αž™αž₯αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž‘αŸ - αž’αŸ’αž“αž€αž–αžΉαž„αž•αŸ’αž’αŸ‚αž€αž›αžΎαž€αžΆαžšαž–αž·αžαžŠαŸ‚αž›αžαžΆαž“αžšαžŽαžΆαž˜αŸ’αž“αžΆαž€αŸ‹αž“αžΉαž„αž’αžΆαž“αžœαžΆαŸ” αž˜αžΆαž“β€‹αž€αžΆαžšβ€‹αž›αŸ’αž”αž½αž„β€‹αžαŸ’αž–αžŸαŸ‹β€‹αž€αŸ’αž“αž»αž„β€‹αž€αžΆαžšβ€‹αžŸαžšαžŸαŸαžšβ€‹αž˜αž·αž“β€‹αž˜αŸ‚αž“β€‹αž’αŸ’αžœαžΈβ€‹αžŠαŸ‚αž›β€‹αž”αžΆαž“β€‹αž€αžΎαžβ€‹αž‘αžΎαž„ (item_canceled, refund_refunded) αž”αŸ‰αž»αž“αŸ’αžαŸ‚ something_should_be_doneαŸ” αž§αž‘αžΆαž αžšαžŽαŸ αž’αžΆαžαž»αžαŸ’αžšαŸ€αž˜αžšαž½αž…αžšαžΆαž›αŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ’αžšαž‚αž›αŸ‹αž˜αž€αžœαž·αž‰αŸ”

αž˜αŸ‰αŸ’αž™αžΆαž„αžœαž·αž‰αž‘αŸ€αž αžœαžΆαžŽαŸ‚αž“αžΆαŸ†αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž“αŸαŸ‡αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αŸ” αž˜αŸ’αž™αŸ‰αžΆαž„αžœαž·αž‰αž‘αŸ€αž αžœαžΆαžŸαŸ’αžαžΆαž”αŸ‹αž‘αŸ…αž˜αž·αž“αžŸαžΌαžœαžŠαžΌαž…αžˆαŸ’αž˜αŸ„αŸ‡αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž’αž˜αŸ’αž˜αžαžΆαž‘αŸαŸ” αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ€αž αžœαžΆαž˜αž·αž“αž†αŸ’αž„αžΆαž™αž–αžΈαž‘αžΈαž“αŸαŸ‡αž‘αŸ…αž€αžΆαž“αŸ‹αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ do_somethingαŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž’αŸ’αž“αž€αž˜αž·αž“αž˜αžΆαž“αž€αžΆαžšαž’αžΆαž“αžΆαžαžΆαž“αžšαžŽαžΆαž˜αŸ’αž“αžΆαž€αŸ‹αž”αžΆαž“αž’αžΆαž“αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž“αŸαŸ‡αž‘αŸαŸ” αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž’αžΆαž“αžœαžΆ αž“αŸ„αŸ‡αž’αŸ’αž“αž€αž’αžΆαž“αžœαžΆαžŠαŸ„αž™αž‡αŸ„αž‚αž‡αŸαž™αŸ” αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž’αžΆαž“αžœαžΆαžŠαŸ„αž™αž‡αŸ„αž‚αž‡αŸαž™ αž“αŸ„αŸ‡αž’αŸ’αž“αž€αž”αžΆαž“αž’αŸ’αžœαžΎαž’αŸ’αžœαžΈαž˜αž½αž™ αž αžΎαž™αž’αŸ’αžœαžΈαž˜αž½αž™αžŠαŸ‚αž›αž‡αŸ„αž‚αž‡αŸαž™αŸ” αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž˜αž½αž™αž€αŸ’αž›αžΆαž™αž‡αžΆ do_something αž˜αžαž·αž€αŸ‚αž›αž˜αŸ’αž’αž€αŸ’αž›αžΆαž™αž‡αžΆαž…αžΆαŸ†αž”αžΆαž…αŸ‹ αž αžΎαž™αž“αŸ„αŸ‡αž‡αžΆαž”αž‰αŸ’αž αžΆαŸ”

αž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž§αž”αž€αžšαžŽαŸαž”αž„αŸ’αžœαž·αž›αžŸαž„αž‡αžΆαž˜αž½αž™ API αž’αžŸαž˜αž€αžΆαž›αž“αŸ…αž›αžΎ Kafka

αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž’αžŸαž˜αž€αžΆαž›αž“αŸ…αž€αŸ’αž“αž»αž„ RabbitMQ αž“αŸ…αž–αŸαž›αž’αŸ’αž“αž€αž’αžΆαž“αžŸαžΆαžš αžŸαžΌαž˜αž…αžΌαž›αž‘αŸ…αž€αžΆαž“αŸ‹ http αž’αŸ’αž“αž€αž˜αžΆαž“αž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž” - αž™αŸ‰αžΆαž„αž αŸ„αž…αžŽαžΆαžŸαŸ‹αžŸαžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αž‘αž½αž›αŸ” αž“αŸ…αž–αŸαž›αž’αŸ’αž“αž€αžŸαžšαžŸαŸαžšαž‘αŸ… Kafka αž˜αžΆαž“αžŸαžΆαžšαžŠαŸ‚αž›αž’αŸ’αž“αž€αž”αžΆαž“αžŸαžšαžŸαŸαžšαž‘αŸ… Kafka αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž’αŸ’αž“αž€αž˜αž·αž“αžŠαžΉαž„αž’αŸ’αžœαžΈαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž’αŸ†αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ”

αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžšαž”αžŸαŸ‹αž™αžΎαž„ αž™αžΎαž„αžαŸ’αžšαžΌαžœαžŽαŸ‚αž“αžΆαŸ†αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž†αŸ’αž›αžΎαž™αžαž” αž“αž·αž„αžšαŸ€αž”αž…αŸ†αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž‡αžΆαž…αŸ’αžšαžΎαž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž‡αžΌαž“αž“αŸ„αŸ‡ αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž–αŸαž›αžœαŸαž›αžΆαž”αŸ‚αž”αž“αŸαŸ‡ αž“αž·αž„αž–αŸαž›αžœαŸαž›αžΆαžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αŸƒαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž†αŸ’αž›αžΎαž™αžαž”αž‚αž½αžšαžαŸ‚αž˜αž€αžŠαž›αŸ‹αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžšαžΏαž„αž“αŸαŸ‡αž˜αž·αž“αž€αžΎαžαž‘αžΎαž„αž‘αŸ αž“αŸ„αŸ‡αž αžΆαž€αŸ‹αž”αžΈαžŠαžΌαž…αž‡αžΆαž˜αžΆαž“αž’αŸ’αžœαžΈαž˜αž½αž™αžαž»αžŸαž”αŸ’αžšαž€αŸ’αžšαžαžΈαŸ” αž§αž‘αžΆαž αžšαžŽαŸ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž™αžΎαž„αž•αŸ’αž‰αžΎαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ β€œitem_ready_to_refund” αž™αžΎαž„αžšαŸ†αž–αžΉαž„αžαžΆαž€αžΆαžšαžŸαž„αž”αŸ’αžšαžΆαž€αŸ‹αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαž αž”αŸ’αžšαžΆαž€αŸ‹αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαž‚αž›αŸ‹αž‡αžΌαž“αž’αžαž·αžαž·αž‡αž“αžœαž·αž‰ αž αžΎαž™αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ β€œmoney_refunded” αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‰αžΎαž˜αž€αž™αžΎαž„αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸαŸ‡αž˜αž·αž“αž”αŸ’αžšαžΆαž€αžŠαž‘αŸ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž‚αžΊαž…αžΆαŸ†αž”αžΆαž…αŸ‹αŸ”

αž–αžŽαŸŒ

αž˜αžΆαž“αž”αž‰αŸ’αž αžΆαž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αž˜αž½αž™αŸ– αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž’αžΆαž“αž–αžΈαž”αŸ’αžšαž’αžΆαž“αž”αž‘αž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹ αž αžΎαž™αž’αŸ’αž“αž€αž˜αžΆαž“αžŸαžΆαžšαž˜αž·αž“αž›αŸ’αž’αž˜αž½αž™αž…αŸ†αž“αž½αž“ αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž“αžΉαž„αž’αŸ’αž›αžΆαž€αŸ‹αž…αž»αŸ‡ αž αžΎαž™αž’αŸ’αž“αž€αž“αžΉαž„αž˜αž·αž“αž”αž“αŸ’αžαž‘αŸ…αž˜αž»αžαž‘αŸ€αžαŸ” αž’αŸ’αž“αž€β€‹αžαŸ’αžšαžΌαžœαž€αžΆαžš αž”αž‰αŸ’αžˆαž”αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ”, αž”αŸ’αžαŸαž‡αŸ’αž‰αžΆαž’αž»αž αŸ’αžœαžŸαž·αžαž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαžŠαžΎαž˜αŸ’αž”αžΈαž”αž“αŸ’αžαž€αžΆαžšαž’αžΆαž“αŸ”

αž™αžΎαž„αž”αžΆαž“αžŠαžΉαž„αž’αŸ†αž–αžΈαžœαžΆ αž™αžΎαž„αž”αžΆαž“αž–αžΉαž„αž•αŸ’αž’αŸ‚αž€αž›αžΎαžœαžΆ αž αžΎαž™αžœαžΆαž“αŸ…αžαŸ‚αž€αžΎαžαž‘αžΎαž„αŸ” αž αžΎαž™αžšαžΏαž„αž“αŸαŸ‡αž”αžΆαž“αž€αžΎαžαž‘αžΎαž„αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž˜αžΆαž“αžŸαž»αž–αž›αž—αžΆαž–αž–αžΈαž…αŸ†αžŽαž»αž…αž“αŸƒαž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž“αŸƒαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ - αž‘αžΆαž“αž€αŸ’αžšαž»αž„ αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž˜αžΆαž“αžŸαž»αž–αž›αž—αžΆαž–αž–αžΈαž‘αžŸαŸ’αžŸαž“αŸˆαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž•αŸ’αžαž›αŸ‹αžŸαž»αž–αž›αž—αžΆαž–αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαžαžΆαž˜αž‘αžŸαŸ’αžŸαž“αŸˆαžšαž”αžŸαŸ‹ PostgreSQL αž‘αŸαž–αžΈαž–αŸ’αžšαŸ„αŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžαŸ‚αž˜αž½αž™αžšαž”αžŸαŸ‹αž™αžΎαž„ MySQL αž‡αžΆαž˜αž½αž™ UNSIGNED INT αž αžΎαž™αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαŸ‚αž›αžŸαžšαžŸαŸαžšαžαŸ’αž˜αžΈαž“αŸαŸ‡αž˜αžΆαž“ PostgreSQL αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž‡αžΆαž˜αž½αž™ INT αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” αž‘αŸ†αž αŸ†αžšαž”αžŸαŸ‹αž‚αžΆαžαŸ‹αžαžΌαž…αž‡αžΆαž„αž”αž“αŸ’αžαž·αž… αž αžΎαž™αž›αŸαžαžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž˜αž·αž“αžŸαž˜αŸ” Symfony αž”αžΆαž“αžŸαŸ’αž›αžΆαž”αŸ‹αžŠαŸ„αž™αž˜αžΆαž“αž€αžšαžŽαžΈαž›αžΎαž€αž›αŸ‚αž„αž˜αž½αž™αŸ” αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹ αž™αžΎαž„αž…αžΆαž”αŸ‹αž”αžΆαž“αž€αžšαžŽαžΈαž›αžΎαž€αž›αŸ‚αž„αž“αŸαŸ‡ αžŠαŸ„αž™αžŸαžΆαžšαž™αžΎαž„αž–αžΉαž„αž•αŸ’αž’αŸ‚αž€αž›αžΎαžœαžΆ αž αžΎαž™αž“αžΉαž„αž’αŸ’αžœαžΎαž€αžΆαžšαž‘αžΌαž‘αžΆαžαŸ‹αžŸαŸ†αžŽαž„αž“αŸαŸ‡ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αž»αž“αž“αŸ„αŸ‡ αž™αžΎαž„αž…αž„αŸ‹αž”αž„αŸ’αž€αžΎαž“αž€αžΆαžšαžšαžΆαž”αŸ‹αž”αž‰αŸ’αž αžΆ αžŠαŸ„αž™αžŸαžΆαžšαžŸαžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αž·αž“αž‡αŸ„αž‚αž‡αŸαž™αŸ” αž”αž‰αŸ’αž‡αžšαž“αŸ…αž€αŸ’αž“αž»αž„αž‚αž˜αŸ’αžšαŸ„αž„αž“αŸαŸ‡αž€αŸαžŸαŸ’αžαž·αžαž“αŸ…αž€αŸ’αž“αž»αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αžš αž αžΎαž™ Symfony αž”αžΆαž“αž”αž·αž‘αž€αžΆαžšαž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž‡αžΆαž˜αž½αž™αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžšαž½αž…αž αžΎαž™ αž αžΎαž™αž€αžšαžŽαžΈαž›αžΎαž€αž›αŸ‚αž„αž‘αžΈαž–αžΈαžšαž”αžΆαž“αžŸαž˜αŸ’αž›αžΆαž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αžΆαŸ†αž„αž˜αžΌαž›αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž±αž€αžΆαžŸαžŠαžΎαž˜αŸ’αž”αžΈαž‘αžΌαž‘αžΆαžαŸ‹αžŸαž„αŸ”

αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž”αžΆαž“αž•αŸ’αž’αžΆαž€αž˜αž½αž™αžšαž™αŸˆ - αž‡αžΆαžŸαŸ†αžŽαžΆαž„αž›αŸ’αž’αž‡αžΆαž˜αž½αž™ Kafka αž“αŸαŸ‡αž˜αž·αž“αž’αžΆαž€αŸ’αžšαž€αŸ‹αž‘αŸαž–αŸ’αžšαŸ„αŸ‡αžŸαžΆαžšαž“αŸ…αžαŸ‚αž˜αžΆαž“αŸ” αž“αŸ…αž–αŸαž›αž€αžΆαžšαž„αžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαŸ’αžαžΆαžšαž‘αžΎαž„αžœαž·αž‰ αž’αŸ’αž“αž€αž’αžΆαž…αž’αžΆαž“αž–αž½αž€αžœαžΆαž±αŸ’αž™αž…αž”αŸ‹αž”αžΆαž“αŸ” αžœαžΆαž˜αžΆαž“αž•αžΆαžŸαž»αž€αž—αžΆαž–αŸ”

Kafka αž˜αžΆαž“αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž’αž»αž αŸ’αžœαžŸαž·αžαžαžΆαž˜αž’αŸ†αž–αžΎαž…αž·αžαŸ’αžαžαžΆαž˜αžšαž™αŸˆαž§αž”αž€αžšαžŽαŸαŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž”αž‰αŸ’αžˆαž”αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ - αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžšαž”αžŸαŸ‹αž™αžΎαž„ αžšαŸ€αž”αž…αŸ†αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αž˜αž½αž™ αžŠαŸ‚αž›αžœαžΆαž“αžΉαž„αž˜αž·αž“αž˜αžΆαž“αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ αž€αžΆαžšαžŠαžΆαž€αŸ‹αž±αŸ’αž™αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‘αžΎαž„αžœαž·αž‰αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž“αŸ…αž€αŸ’αž“αž»αž„ Kafka αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžαžΌαžšαž’αž»αž αŸ’αžœαžŸαž·αžαžαžΆαž˜αžšαž™αŸˆαž§αž”αž€αžšαžŽαŸ αž αžΎαž™αžŸαžΆαžšαž“αžΉαž„αž†αŸ’αž›αž„αž€αžΆαžαŸ‹αŸ”

nuance αž˜αž½αž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αž - αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž…αž˜αŸ’αž›αž„αž’αŸ€αž”αž“αžΉαž„ rdkafka.so - αž‚αžΊαž‘αžΆαž€αŸ‹αž‘αž„αž‘αŸ…αž“αžΉαž„αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž“αŸƒαž‚αž˜αŸ’αžšαŸ„αž„αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ” αž™αžΎαž„αž”αŸ’αžšαžΎ PHP αž αžΎαž™αž“αŸ…αž€αŸ’αž“αž»αž„ PHP αž‡αžΆαž€αŸ’αž”αž½αž“ αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‘αžΆαž€αŸ‹αž‘αž„αž‡αžΆαž˜αž½αž™ Kafka αžαžΆαž˜αžšαž™αŸˆαžƒαŸ’αž›αžΆαŸ†αž„ rdkafka.so αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž˜αžΆαž“αž”αŸ’αžšαž—αŸαž‘ wrapper αž˜αž½αž™αž…αŸ†αž“αž½αž“αŸ” αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž‘αžΆαŸ†αž„αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αžΆαžšαž›αŸ†αž”αžΆαž€αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž™αžΎαž„ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž”αžΆαž“αž”αŸ’αžšαŸ‚αž€αŸ’αž›αžΆαž™αžαžΆαž€αžΆαžšαž’αžΆαž“αž‘αžΎαž„αžœαž·αž‰αž“αžΌαžœαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž™αžΎαž„αž”αžΆαž“αž’αžΆαž“αžšαž½αž…αž αžΎαž™αž‚αžΊαž˜αž·αž“αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž“αŸ„αŸ‡αž‘αŸαŸ” αž‡αžΆαž‘αžΌαž‘αŸ…αž˜αžΆαž“αž”αž‰αŸ’αž αžΆαž•αŸ’αž“αŸ‚αž€αž‘αž“αŸ‹αŸ”

αžαŸ’αžšαž›αž”αŸ‹αž‘αŸ…αž—αžΆαž–αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž—αžΆαž‚αžαžΆαžŸαžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž“αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžš αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ >= αž€αžΆαžšαž”αŸ‚αž„αž…αŸ‚αž€αž”αŸ’αžšαž’αžΆαž“αž”αž‘. αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αžαŸ’αž‰αž»αŸ†β€‹αž”αžΆαž“β€‹αžŠαžΉαž„β€‹αž’αŸ†αž–αžΈβ€‹αžšαžΏαž„β€‹αž“αŸαŸ‡β€‹αž€αŸ’αžšαŸ„αž™β€‹αž–αŸαž›β€‹αž…αŸ’αžšαžΎαž“β€‹αž‡αžΆαž„β€‹αž’αŸ’αžœαžΈβ€‹αžŠαŸ‚αž›β€‹αžαŸ’αž‰αž»αŸ†β€‹αž…αž„αŸ‹β€‹αž”αžΆαž“αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž…αž„αŸ‹αž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“ αž“αž·αž„αž˜αžΆαž“αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž–αžΈαžšαž“αžΆαž€αŸ‹ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αžΆαžšαž—αžΆαž‚αžαžΆαžŸαž™αŸ‰αžΆαž„αžαž·αž…αž–αžΈαžšαŸ” αž“αŸ„αŸ‡αž‚αžΊαž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“αž—αžΆαž‚αžαžΆαžŸαž˜αž½αž™αžŠαŸ‚αž›αž€αŸ’αž“αž»αž„αž“αŸ„αŸ‡ 20 αž–αžΆαž“αŸ‹αžŸαžΆαžšαž”αžΆαž“αž”αŸ’αžšαž˜αžΌαž›αž•αŸ’αžαž»αŸ† αž αžΎαž™αž’αŸ’αž“αž€αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαžαŸ’αž˜αžΈαž˜αž½αž™αž“αŸ„αŸ‡ αž…αŸ†αž“αž½αž“αžŸαžΆαžšαž“αžΉαž„αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαŸ’αž˜αžΎαž‚αŸ’αž“αžΆαž€αŸ’αž“αž»αž„αž–αŸαž›αž†αžΆαž”αŸ‹αŸ—αž“αŸαŸ‡αž‘αŸαŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡β€‹αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αž±αŸ’αž™β€‹αž˜αžΆαž“β€‹αž’αŸ’αž“αž€β€‹αž”αŸ’αžšαžΎβ€‹αžŸαŸ’αžšαž”β€‹αž‚αŸ’αž“αžΆβ€‹αž–αžΈαžš αž’αŸ’αž“αž€β€‹αžαŸ’αžšαžΌαžœβ€‹αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™β€‹αž‡αžΆαž˜αž½αž™β€‹αž—αžΆαž‚β€‹αžαžΆαžŸαŸ”

αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™

αžαŸ’αž‰αž»αŸ†β€‹αž‚αž·αžβ€‹αžαžΆβ€‹αžœαž·αž’αžΈβ€‹αžŠαŸ‚αž›β€‹αž™αžΎαž„β€‹αžαŸ’αžšαž½αžβ€‹αž–αž·αž“αž·αžαŸ’αž™β€‹αžœαžΆβ€‹αž“αžΉαž„β€‹αž€αžΆαž“αŸ‹β€‹αžαŸ‚β€‹αž…αŸ’αž”αžΆαžŸαŸ‹β€‹αžαžΆβ€‹αžαžΎβ€‹αž˜αžΆαž“β€‹αž”αž‰αŸ’αž αžΆβ€‹αž’αŸ’αžœαžΈβ€‹αž“αŸ…β€‹αž€αŸ’αž“αž»αž„β€‹αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšβ€‹αžŠαŸ‚αž›β€‹αž˜αžΆαž“β€‹αžŸαŸ’αžšαžΆαž”αŸ‹αŸ”

αž§αž‘αžΆαž αžšαžŽαŸ αž™αžΎαž„αž‚αžŽαž“αžΆαž…αŸ†αž“αž½αž“αž•αž›αž·αžαž•αž›αž“αŸ…αž€αŸ’αž“αž»αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžŸαŸ’αžαžΆαž“αž—αžΆαž–αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαž“αžΆαž–αŸαž›αžαŸ’αž˜αžΈαŸ—αž“αŸαŸ‡ αž αžΎαž™αžαžΆαž˜αž“αŸ„αŸ‡ αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž‚αž½αžšαžαŸ‚αž€αžΎαžαž‘αžΎαž„αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‘αžΆαŸ†αž„αž“αŸαŸ‡ αž αžΎαž™αž™αžΎαž„αž•αŸ’αž‰αžΎαž›αŸαžαž“αŸαŸ‡αž‘αŸ…αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž–αžΈ Kafka αž™αžΎαž„αž‘αž‘αž½αž›αž”αžΆαž“αž›αŸαžαž‘αžΈαž–αžΈαžš αžαžΎαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž‡αžΆαž…αŸ’αžšαžΎαž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αžαŸ‹αžαŸ’αžšαžΆαž™αŸ‰αžΆαž„αž–αž·αžαž”αŸ’αžšαžΆαž€αžŠαŸ” αž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„ αž—αžΆαž–αžαž»αžŸαž‚αŸ’αž“αžΆαžšαžœαžΆαž„αž›αŸαžαž‘αžΆαŸ†αž„αž–αžΈαžšαž“αŸαŸ‡αž‚αž½αžšαžαŸ‚αž‡αžΆαžŸαžΌαž“αŸ’αž™αž‡αžΆαž“αž·αž…αŸ’αž…αŸ”

αž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž§αž”αž€αžšαžŽαŸαž”αž„αŸ’αžœαž·αž›αžŸαž„αž‡αžΆαž˜αž½αž™ API αž’αžŸαž˜αž€αžΆαž›αž“αŸ…αž›αžΎ Kafka

αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ€αž αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαžαžΆαž˜αžŠαžΆαž“αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αž’αŸ’αž“αž€αž•αž›αž·αžαž€αŸ†αž–αž»αž„αž’αŸ’αžœαžΎ αžαžΆαžαžΎαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ-bus αž”αžΆαž“αž‘αž‘αž½αž›αžŸαžΆαžš αž“αž·αž„αžšαž”αŸ€αž”αžŠαŸ‚αž›αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž€αŸ†αž–αž»αž„αž’αŸ’αžœαžΎαŸ” αž§αž‘αžΆαž αžšαžŽαŸ αž€αŸ’αž“αž»αž„αžαžΆαžšαžΆαž„αžαžΆαž„αž€αŸ’αžšαŸ„αž˜ αž§αž”αž€αžšαžŽαŸαž”αž„αŸ’αžœαž·αž›αž”αŸ’αžšαžΆαž€αŸ‹αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αŸ’αž’ αž”αŸ‰αž»αž“αŸ’αžαŸ‚ BOB αž˜αžΆαž“αž”αž‰αŸ’αž αžΆαž˜αž½αž™αž…αŸ†αž“αž½αž“ (αž€αŸ†αž–αžΌαž›αž–αžŽαŸŒαžαŸ€αžœ)αŸ”

αž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž§αž”αž€αžšαžŽαŸαž”αž„αŸ’αžœαž·αž›αžŸαž„αž‡αžΆαž˜αž½αž™ API αž’αžŸαž˜αž€αžΆαž›αž“αŸ…αž›αžΎ Kafka

αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž—αžΆαž–αž™αžΊαžαž™αŸ‰αžΆαžœαž“αŸƒαž€αŸ’αžšαž»αž˜αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžšαž½αž…αž αžΎαž™αŸ” αž“αž·αž™αžΆαž™αžŠαŸ„αž™αž”αŸ’αžšαž™αŸ„αž› αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž…αŸ†αž“αž½αž“αžŸαžΆαžšαžŠαŸ‚αž›αž˜αž·αž“αž‘αžΆαž“αŸ‹αž’αžΆαž“αŸ” αž‡αžΆαž‘αžΌαž‘αŸ… αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžšαž”αžŸαŸ‹αž™αžΎαž„αž’αŸ’αžœαžΎαž€αžΆαžšαž™αŸ‰αžΆαž„αž†αžΆαž”αŸ‹αžšαž αŸαžŸ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž—αžΆαž–αž™αžΊαžαž™αŸ‰αžΆαžœαž‡αžΆαž’αž˜αŸ’αž˜αžαžΆαž‚αžΊ 0 αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž–αŸαž›αžαŸ’αž›αŸ‡αžœαžΆαž’αžΆαž…αž˜αžΆαž“αž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž›αžαŸ’αž›αžΈαŸ” Kafka αž’αžΆαž…αž’αŸ’αžœαžΎαžœαžΆαž…αŸαž‰αž–αžΈαž”αŸ’αžšαž’αž”αŸ‹ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αŸ†αžŽαžαŸ‹αž…αž“αŸ’αž›αŸ„αŸ‡αž–αŸαž›αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™αŸ”

αž˜αžΆαž“αž‚αž˜αŸ’αžšαŸ„αž„αž˜αž½αž™αŸ” BurrowαžŠαŸ‚αž›αž“αžΉαž„αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αž’αŸ’αž“αž€αž“αžΌαžœαž–αŸαžαŸŒαž˜αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž’αŸ†αž–αžΈ Kafka αŸ” αžœαžΆαž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž”αŸ’αžšαžΎ API αž€αŸ’αžšαž»αž˜αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ αžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αžαž›αŸ‹αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž“αŸƒαžšαž”αŸ€αž”αžŠαŸ‚αž›αž€αŸ’αžšαž»αž˜αž“αŸαŸ‡αž€αŸ†αž–αž»αž„αž’αŸ’αžœαžΎαŸ” αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž›αžΎαž€αžΆαžšαž™αž›αŸ‹αž–αŸ’αžšαž˜ αž“αž·αž„αž”αžšαžΆαž‡αŸαž™ αž˜αžΆαž“αž€αžΆαžšαž–αŸ’αžšαž˜αžΆαž“αž˜αž½αž™ αž αžΎαž™αž’αŸ’αž“αž€αž’αžΆαž…αžšαž€αžƒαžΎαž‰αžαžΆαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž˜αž·αž“αž’αžΆαž…αž‘αž”αŸ‹αž‘αž›αŸ‹αž“αžΉαž„αž›αŸ’αž”αžΏαž“αž“αŸƒαž€αžΆαžšαž•αž›αž·αžαž”αžΆαž“αž“αŸ„αŸ‡αž‘αŸ αž–αž½αž€αž‚αŸαž˜αž·αž“αž˜αžΆαž“αž–αŸαž›αžœαŸαž›αžΆαžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αž’αŸ’αžœαžΈαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαž“αŸ„αŸ‡αž‘αŸαŸ” αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž“αŸαŸ‡αž–αž·αžαž‡αžΆαž†αŸ’αž›αžΆαžαžœαŸƒ αž“αž·αž„αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž”αŸ’αžšαžΎαŸ”

αž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž§αž”αž€αžšαžŽαŸαž”αž„αŸ’αžœαž·αž›αžŸαž„αž‡αžΆαž˜αž½αž™ API αž’αžŸαž˜αž€αžΆαž›αž“αŸ…αž›αžΎ Kafka

αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž”αžšαž”αžŸαŸ‹ API αž˜αžΎαž›αž‘αŸ…αžŠαžΌαž…αŸ” αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αŸ’αžšαž»αž˜ bob-live-fifa, partition refund.update.v1, αžŸαŸ’αžαžΆαž“αž—αžΆαž– OK, lag 0 - αž’αž»αž αŸ’αžœαžŸαž·αžαž…αž»αž„αž€αŸ’αžšαŸ„αž™αž…αž»αž„αž€αŸ’αžšαŸ„αž™αžŠαžΌαž…αž‡αžΆαž‡αžΆαžŠαžΎαž˜αŸ”

αž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž§αž”αž€αžšαžŽαŸαž”αž„αŸ’αžœαž·αž›αžŸαž„αž‡αžΆαž˜αž½αž™ API αž’αžŸαž˜αž€αžΆαž›αž“αŸ…αž›αžΎ Kafka

αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™ updated_at SLA (αž‡αžΆαž”αŸ‹αž‚αžΆαŸ†αž„) αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž›αžΎαž€αž‘αžΎαž„αžšαž½αž…αž αžΎαž™αŸ” αž§αž‘αžΆαž αžšαžŽαŸ αž•αž›αž·αžαž•αž›αž”αžΆαž“αž”αŸ’αžαžΌαžšαž‘αŸ…αž‡αžΆαžŸαŸ’αžαžΆαž“αž—αžΆαž–αžŠαŸ‚αž›αžœαžΆαžšαž½αž…αžšαžΆαž›αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžαŸ’αžšαž‘αž”αŸ‹αž˜αž€αžœαž·αž‰αŸ” αž™αžΎαž„αžŠαŸ†αž‘αžΎαž„ Cron αžŠαŸ‚αž›αž“αž·αž™αžΆαž™αžαžΆαž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž› 5 αž“αžΆαž‘αžΈαžœαžαŸ’αžαž»αž“αŸαŸ‡αž˜αž·αž“αž”αžΆαž“αžŸαž„αž”αŸ’αžšαžΆαž€αŸ‹αžœαž·αž‰αž‘αŸ (αž™αžΎαž„αž”αŸ’αžšαž‚αž›αŸ‹αž”αŸ’αžšαžΆαž€αŸ‹αžœαž·αž‰αžαžΆαž˜αžšαž™αŸˆαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‘αžΌαž‘αžΆαžαŸ‹αž™αŸ‰αžΆαž„αž†αžΆαž”αŸ‹αžšαž αŸαžŸ) αž“αŸ„αŸ‡αž”αŸ’αžšαžΆαž€αžŠαž‡αžΆαž˜αžΆαž“αž’αŸ’αžœαžΈαž˜αž½αž™αžαž»αžŸαž”αŸ’αžšαž€αŸ’αžšαžαžΈ αž αžΎαž™αž“αŸαŸ‡αž–αž·αžαž‡αžΆαž€αžšαžŽαžΈαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αžΎαž™ αž™αžΎαž„αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž™αž€ Cron αžŠαŸ‚αž›αž’αžΆαž“αžšαžΏαž„αž”αŸ‚αž”αž“αŸαŸ‡ αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžœαžΆαž’αŸ†αž‡αžΆαž„ 0 αž“αŸ„αŸ‡αžœαžΆαž“αžΉαž„αž•αŸ’αž‰αžΎαž€αžΆαžšαž‡αžΌαž“αžŠαŸ†αžŽαžΉαž„αŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαžŸαž„αŸ’αžαŸαž”αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž‚αžΊαž„αžΆαž™αžŸαŸ’αžšαž½αž›αž“αŸ…αž–αŸαž›:

  • αž–αŸαžαŸŒαž˜αžΆαž“αž‚αžΊαžαŸ’αžšαžΌαžœαž€αžΆαžšαžŠαŸ„αž™αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‡αžΆαž…αŸ’αžšαžΎαž“;
  • αž›αž‘αŸ’αž’αž•αž›αž“αŸƒαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‚αžΊαž˜αž·αž“αžŸαŸ†αžαžΆαž“αŸ‹;
  • αž˜αžΆαž“αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαžαž·αž…αžαž½αž… αž¬αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαžαžΌαž…αžαžΆαž…αŸ”

αžœαžΆαž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆαžαžΆαž’αžαŸ’αžαž”αž‘αž˜αžΆαž“αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™ - API αž’αžŸαž˜αž€αžΆαž›αž“αŸ…αž›αžΎ Kafka αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αžœαžΆ αžαŸ’αž‰αž»αŸ†αž…αž„αŸ‹αžŽαŸ‚αž“αžΆαŸ†αžšαžΏαž„αž‡αžΆαž…αŸ’αžšαžΎαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžαŸ‚αž˜αž½αž™αŸ”
αž‘αžΈαž˜αž½αž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹ αž€αžΆαžšαž•αŸ’αž‘αž»αž€αžαŸ’αž–αžŸαŸ‹ ++ αž™αžΎαž„αžαŸ’αžšαžΌαžœαžšαž„αŸ‹αž…αžΆαŸ†αžšαž αžΌαžαžŠαž›αŸ‹αžαŸ‚αžœαž·αž…αŸ’αž†αž·αž€αžΆ αž αžΎαž™αž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ‚αž˜αŸαžŸαžΆαž“αžΉαž„αž˜αžΆαž“αž€αŸ†αžŽαŸ‚αžŸαžΆαŸ†αž„αž–αŸαž‘αžΊαž”αŸŠαžΊαž‚ αž αžΎαž™αž“αŸ…αžαŸ‚αž˜αž·αžαž»αž“αžΆ αž™αžΎαž„αž“αžΉαž„αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž€αžΆαžšαž•αŸ’αž‘αž»αž€αžαŸ’αž–αžŸαŸ‹αž“αŸ… NovosibirskαŸ”
αž‘αžΈαž–αžΈαžš αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαž‚αžΊαž›αŸ„αž€ Sergei Zaika αž‡αžΆαžŸαž˜αžΆαž‡αž·αž€αž“αŸƒαž‚αžŽαŸˆαž€αž˜αŸ’αž˜αžΆαž’αž·αž€αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αŸƒαžŸαž“αŸ’αž“αž·αžŸαžΈαž‘αžαŸ’αž˜αžΈαžšαž”αžŸαŸ‹αž™αžΎαž„αžŸαŸ’αžαžΈαž–αžΈαž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž…αŸ†αžŽαŸαŸ‡αžŠαžΉαž„αŸ” KnowledgeConf. αžŸαž“αŸ’αž“αž·αžŸαž·αž‘αž“αŸαŸ‡αž‚αžΊαž˜αžΆαž“αžšαž™αŸˆαž–αŸαž›αž˜αž½αž™αžαŸ’αž„αŸƒαž“αžΉαž„αž”αŸ’αžšαž–αŸ’αžšαžΉαžαŸ’αžαž‘αŸ…αž“αŸ…αžαŸ’αž„αŸƒαž‘αžΈ 26 αžαŸ‚αž˜αŸαžŸαžΆ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αžœαžΆαž˜αžΆαž“αžŸαž—αžΆαž–αžαŸ’αž›αžΆαŸ†αž„αŸ”
αž αžΎαž™αžœαžΆαž“αžΉαž„αž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ‚αž§αžŸαž—αžΆ PHP αžšαž»αžŸαŸ’αžŸαŸŠαžΈ ΠΈ RIT++ (αž‡αžΆαž˜αž½αž™ DevOpsConf αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›) - αž’αŸ’αž“αž€αž€αŸαž’αžΆαž…αžŸαŸ’αž“αžΎαž”αŸ’αžšαž’αžΆαž“αž”αž‘αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡ αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž“αž·αž„αžαŸ’αž’αžΌαž‰αžαŸ’αž’αŸ‚αžšαž’αŸ†αž–αžΈαž€αŸ„αžŽαžŠαŸ‚αž›αž€αž”αŸ‹αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ”

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹