Lamoda áá²á·ááá¯á·áá±á¬ áá¯áá¹ááá®ááŒá®ážáá áºáá¯ááᯠááá¯ážááŸááºážáá±á¬ áá¯ááºáááºážá ááºááŸáá·áº á¡ááŒááºá¡ááŸááºáá»áááºáááºáá¬ážáá±á¬ áááºáá±á¬ááºááŸá¯áá»á¬ážá áœá¬ááŒáá·áº áááºážááá»ááºážáááºáá¯á¶ááᯠáááááá¬áᬠááŒá±á¬ááºážáá²ááẠá¡áááºá¡áá¬á ááœááºážá¡á¬ážáá±ážááá¯ááºáááºáááºážá ááŸá¯á¶á·áá±á¬áºááŸá¯ááẠáá¯á¶ážáááœá²ááŒá¬ážááá¯ááºáááº- á¥ááá±ááŒá¯áá±ážá០áááá¯ááááºáá¬áá»á¬ážá¡á¬ážáá¯á¶ážááœáẠááœá±ážáá¬áá« á ááºážáááºááá¯áá±á¬ááá¹áá¡ááá
ááá¯á·áá±á¬áº áááºážááẠáááºááẠáá±á¬ááºáááºá¡áá»áá¯ážáá¶á
á¬ážááœáá·áºáá»á¬ážááᯠááá·áºáááœááºááá¯ááºáᯠáááá¯ááá¯áá«á Kafka ááœáẠááŒá
áºáááºáá»á¬áž áá±á¬ááºážááŸááºááá·áº API ááᯠáááºá¡áá±á¬ááºá¡áááºáá±á¬áºáá«á Sergey Zaika ááẠááá·áºá¡á¬áž áááºááá·áºá¡áá¬ááᯠá¡ááá¯ááºáááá¯ááºáááºááᯠá¡ááá¡áá» ááŒá±á¬ááŒáá«áááºá
ááááºááá¯ááºááŒá±á¬ááºážááŸááºážáááºážáá»ááº- á€áá±á¬ááºážáá«ážááẠHighLoad++ ááœáẠ2018 áá¯ááŸá
Ạááá¯áááºáá¬áááœáẠSergey áá»ááºážááá²á·áá±á¬ á¡á
ááºážá¡áá±ážá០á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááᯠá¡ááŒá±áá¶áá¬ážáááºá Kafka ááŸáá·áº á¡áá¯ááºáá¯ááºááá·áº Lamoda á ááá¯ááºááá¯ááºá¡ááœá±á·á¡ááŒá¯á¶ááẠá¡áá»áááºááá¬ážááŸá á¡ááŒá¬ážá¡á
á®áááºáá¶á
á¬áá»á¬ážááẠáá¬ážáá±á¬ááºáá°áá»á¬ážááᯠááœá²áá±á¬ááºáá²á·áááºá á€á¡áá¬ááẠáááºá
áááºáá°ááá¯ááºáá°áá°áá»á¬ážááᯠá¡ááŒá²ááŸá¬ááœá±ááá¯ááºááŒá®áž HighLoad++ áá
á®á
ááºáá°áá»á¬ážááẠáááºážá¡ááœáẠááá·áºáá»á±á¬áºáá±á¬áá±áá¯ááá¯áááºáá®ážááẠáááºáááºááŒáá¯ážá
á¬ážááœá¬ážááá·áºá¡áá»ááºá á¡áá±á¬ááºážáá¯á¶ážá¥ááá¬áá
áºáá¯ááŒá
áºáááºá
ááŒá áºá ááºá¡ááŒá±á¬ááºáž
Lamoda ááẠáááºážáááá¯ááºááá¯ááºá¡áááºá¡ááœááºá ááºáá¬á áá±ážááá¯á·ááŒááºážáááºáá±á¬ááºááŸá¯ (áá¯ááºáááºážááœá²áá»á¬ážá áœá¬)á áá¬ááºáá¯á¶á áá°áá®ááá¯á ááá¯áá±á«ááºáá»ááºááŒá®ážáá áºáá¯ááŸáá·áº áááºážáááá¯ááºááá¯ááºáá±á¬á·ááºáá²ááºáá±á«áºááœáẠáá¯ááºáá±á¬ááºááá·áº ááŒá®ážáá¬ážáá±á¬ e-commerce ááááºáá±á¬ááºážáá áºáá¯ááŒá áºáááºá ááœá±áá±ážáá»á±ááŸá¯áááºážáááºáž áá«áááºáá»á¬ážá áœá¬ááŸááá«áááºá b2b áá«ááá¬áá»á¬ážááẠá€áááºáá±á¬ááºááŸá¯á¡áá»áá¯á· ááá¯á·ááá¯áẠá¡á¬ážáá¯á¶ážááᯠá¡áá¯á¶ážááŒá¯ááŒá®áž áááºážááá¯á·ááá¯ááºáá¯ááºáá»á¬ážááŸáá·áºáááºáááºáá±á¬ áá±á¬ááºáá¯á¶ážáá±á«áºá¡áá»ááºá¡áááºáá»á¬ážááᯠááááŸáááá¯áá±á¬ bXNUMXb áá«ááá¬áá»á¬ážááŒá áºáááºá ááá¯á·á¡ááŒáẠLamoda ááẠáá¯ááŸá¬ážáááºááá±ážááŸááºážááŸááœá²á ááá¯ááºáá¶áá¯á¶ážááá¯ááºáá¶á áááºáááºáá±ááŒá®áž á¡áá¬á¡á¬ážáá¯á¶ážááŸá¬ á¡áááºážáááºááœá²ááŒá¬ážáááºá á á¯á á¯áá±á«ááºážá á¡ááŸá¬á á¬á¡áá áºááᯠá á®á ááºáááºááŸááºááẠáááºážáááºážáá±á«ááºáž áá áºáá¬áá»á±á¬áºááŸáááá¯ááºáááºá áááºážááᯠáááºážáááá¯ááºááá¯ááºáááºážáááºážááŒáá·áº áá¯ááºáá±á¬ááºááááºááŒá áºáááºá á€á¡áá¬á¡á¬ážáá¯á¶ážááẠáá áºáá«áá áºáá¶ááœáẠáááºáááºááŸá¬ážááŸá¬ážááá¯ááºáá±á¬ áááºážáááºážáá»á¬ážááŒáá·áº áááºááœááºááá¯ááºááá·áº áá«áááºáá±á«ááºážáá»á¬ážá áœá¬áá±á¬ áááºáá±á¬ááºááŸá¯áá»á¬ážáá¡áá°á¡áá®ááŒáá·áº áá¯ááºáá±á¬ááºáááºá á¡ááááá¬áááºááŸáááŸá¯ááŸá¬ á¡áááá·áºá¡ááá·áºá¡áááºážáá»á¬ážááŸáááá·áº áááá¯á áá áºáááºáž ááŸááá«áááºá áá«ááá¯á·áá°áááᯠBOB ááá¯á·áá±á«áºáááºá áá«áá°ááá²á·á¡áá¯ááºáá¯ááºáááºá
ááŒá áºáááºáá»á¬áž-áá±á¬ááºážááŸááºáá±á¬ API ááŒáá·áº ááŒááºá¡ááºážááá·áºáááááá¬
Events-driven áá°áá±á¬ á áá¬ážáá¯á¶ážááẠá¡áá±á¬áºáá±áž hackneyed ááŒá áºáááºá áááºážááᯠááá¯ááá¯ááá·áº á¡áááá¹áá«ááºááᯠáá±á¬ááºáááºá¡áá±ážá ááẠáááºáá¶áá±á¬áºááŒáá«áááºá Kafka ááŸá ááŒá áºáááºáá»á¬áž áá±á¬ááºážááŸááºááá·áº API áá»ááºážáááºááŸá¯ááᯠá ááºážááŒáá·áºááẠáá¯á¶ážááŒááºáá²á·ááá·áº á¡ááŒá±á¬ááºážá¡áá¬ááŸáá·áº á áááºáá«áááºá
áááºááá·áºá
ááá¯ážááá¯ááºááœááºáááᯠáá±á¬ááºáááºáá±ážáá±á¬ááºááá·áº á¡ááŸá¬á
á¬áá»á¬ážá¡ááŒáẠáá¯ááºáá
á¹á
ááºážááẠáááºáá°áá°ááŸáá·áº áááá¯ááºáá®áá±á¬ááŒá±á¬áá·áº á
ááá¯ážááá¯ááºá០ááœá±ááŒááºáá±ážááẠááá¯á¡ááºááá·áºá¡áá»áááºáá»á¬ážááŸááá«áááºá áááºážááẠááá¯áá±á¬ááºážáá±á¬ áá¯ááºáááºážá
ááºááŒá
áºáááº- ááá¯á¡ááºáá«á á¡áá»ááºá¡áááºááᯠááŸááºážáááºážááŒá®áž ááœá±ááœáŸá²áá«áááºá
áá«áá±ááá·áº á¥ááá±á¡ááŒá±á¬ááºážá¡áá²ááœá±ááŒá±á¬áá·áº ááŒááºááᬠááá¯ááŸá¯ááºááœá±ážáá¬ááŒá®áž á¡á²áá«á¡ááœáẠáá®ážááŒá¬áž microservice áá áºáá¯ááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáá²á·ááá«áááºá
áá»áœááºá¯ááºááá¯á·áááŸá¯á¶á·áá±á¬áºááŸá¯-
- á¥ááá± FZ-54 - á¡ááá¯áá»á¯ááºááŒá±á¬ááá»áŸáẠá¥ááá±ááẠáááá áºá¡áááºážáááºá¡ááœááºáž SLA ááá¯áá±á¬ááºážáá±á¬ SLA áá áºáá¯á¡ááœááºáž ááœá±ááŒá±ážááœáŸá²ááŒá±á¬ááºážááŸá¯ááá¯ááºážá ááŒá±á á¬ááŒá áºá á±á ááŒá±á á¬ááŒá áºá á± á¡ááœááºáá¯á¶ážááá¯á· á¡á á®áááºáá¶ááẠááá¯á¡ááºáááºá áá»áœááºá¯ááºááá¯á·ááẠe-commerce áá¯áá¹ááá®áá áºáá¯á¡áá±ááŒáá·áº áá¯ááºáááºážáá±á¬ááºááœááºááŸá¯áá»á¬ážá áœá¬ááᯠáá±á¬ááºááœááºáá«áááºá áááºážááá¬á¡áá áááºážááẠáá¬áááºáá Ạ(ááá¯á·ááŒá±á¬áá·áº áááºáá±á¬ááºááŸá¯á¡áá áº) ááŸáá·áº áááºáááºááá·áº á áá áºáá»á¬ážá¡á¬ážáá¯á¶ážááœáẠááá¯ážáááºááŸá¯áá»á¬ážááᯠááá¯ááá¯áááºá
- BOB ááœá²ááœá¬ážáááºá BOB á á¡áááááá¯ááºáá±á¬áá¬áááºááá¹ááá¬ážáá»á¬ážá០áááºážááœááºá á±áááºááŸáá·áº áááºážá á¡áá¯á¶ážá á¯á¶ááŸá¯ááºááœá±ážááŸá¯ááᯠáá»áŸá±á¬á·áá»ááẠáá¯áá¹ááá®ááœááºáž ááá±á¬áá»ááºáá áºáá¯ááŒá áºáááºá
á€áá¯á¶ááŒááºážááẠá¡ááá Lamoda á
áá
áºáá»á¬ážááᯠááŒááá¬ážáááºá á¡áᯠá¡áá»á¬ážá
á¯á ááá¯áá»á¬ážáááºá áá»á¯á¶á·áá±áá±á¬ monolith áááºáááºááœáẠ5-10 microservices ááŒááºá
á¯áá
áºáá¯. áááºážááá¯á·ááẠáááŒááºážááŒááºážááŒá®ážááœá¬ážáá¬áá±á¬áºáááºáž á¡áááºááœááºááœá±ážáá»ááºáá¬ážáá±á¬á¡ááá¯ááºážá¡á
ááᯠááŒáá·áºáá»ááºáá»áá¬ážááŒááºážááẠááŒá±á¬ááºá
áá¬áá±á¬ááºážáá±á¬ááŒá±á¬áá·áº áááºážááá¯á·ááᯠáá±ážáááºá¡á±á¬ááºááŒá¯áá¯ááºááẠáá»áœááºá¯ááºááá¯á·ááŒáá¯ážá
á¬ážáá±áá«áááºá áá»áœááºá¯ááºááá¯á·ááẠáá²ááŸááºááŸá¯á¡á¬ážáá¯á¶áž (ááŒáŸá¬ážáá»á¬áž) ááᯠáá®ážááá·áºáá¬ážááẠááá¯ááºážá
á±áᬠáááºážááá¯á·áá²á០áá
áºáá¯á០ááááŸáááá¯ááºáá±á¬á·ááŒá±á¬ááºáž ááá·áºááœááºážá
ááºážá
á¬ážáá«áááºá
BOB ááœáẠááœá±áá±ážáá»á±ááŸá¯á áá áºáá»á¬ážá áá±ážááá¯á·ááŸá¯á áá áºáá»á¬ážá á¡áááá±ážáá»ááºá áá áºáá»á¬áž á áááºááá¯á·áááºáž á¡áá»á¬ážá¡ááŒá¬ážááŸááááºá
áááºážááá¬á¡á BOB áááº-
- áá¯ááºá ~ 150k ááá¯ááºážáá»á¬áž + á ááºážáááºááŸá¯ ~ 100k ááá¯ááºážáá»á¬ážá
- php7.2 + Zend 1 & Symfony Components 3;
- > 100 APIs & ~50 á¡ááŒááºááœááºáá±á«ááºážá ááºážááŸá¯áá»á¬ážá
- áááºážááá¯á·ááẠááá¯ááºááá¯ááºá á®ážááœá¬ážáá±áž áá¯áá¹ááááŸááá±á¬ ááá¯ááºáá¶ááŒá áºáááºá
BOB ááᯠá¡áá¯á¶ážááŒá¯ááŒááºážááẠá á»á±ážááŒá®ážááŒá®áž áá¬áá»ááºá á±áááºá áááºážááŒá±ááŸááºážááá¯ááºáá±á¬ áá¯ááºááá¬áááŸáá·áº ááŒá¿áá¬áá»á¬ážááẠáááºážááá¯á·á¡á¬ážáá¯á¶ážááᯠáááºážááá¯á·ááá±á«ááºážáá²ááá¯á· áááºáá°áá»áŸ ááá·áºáááœááºážááá¯ááºáá±á áá±áá°áá»á¡á¬ážááŒáá·áº áááºážááá¯ááá¯ážááŸááºážá á±ááẠá¡ááŒá±á¬ááºážááŒáá»ááºáá»á¬ážá áœá¬ááŸááááºá
Return Process
áááŠážááœááºá BOB ááŸáá·áº ááœá±áá±ážáá»á±ááŸá¯ áá¯ááºáááºážá ááºááœáẠá áá áºááŸá áºáᯠáá«áááºáá«áááºá ááᯠáá±á¬ááºááẠááŸá áºáá¯áá±á«áºáá¬áááº-
- ááŒááºááááºáá±á¬ááºááŸá¯áá»á¬ážááŸáá·áº áááºááœááºááŸá¯ááá¯ááºáᬠááŒá¿áá¬áá»á¬ážááᯠááá¯á áá¯ááºáá±ážááá·áº Fiscalization Serviceá
- BOB ááᯠááá±á¬ááºážááœá á±ááẠááá¯ážááŸááºážá áœá¬ áá²ááŸááºááŸá¯á¡áá áºáá»á¬ážáá«ááŸááá±á¬ ááœá±ááŒááºá¡ááºážááá·áºáááááá¬á
ááᯠáá¯ááºáááºážá ááºááẠá€áá²á·ááá¯á· ááŒá áºáá¯á¶ááááºá
- BOB ááẠááŒááºá¡ááºážááœá±á¡ááœáẠáá±á¬ááºážááá¯áá»ááºááᯠáááºáá¶áááŸáááẠá
- BOB á áá® Refund Tool á¡ááŒá±á¬ááºáž ááœá±ážááœá±ážáá¬ážáá«áááºá
- ááŒááºá¡ááºážááœá±áá°ážááºá ááœá±áá±ážáá»á±ááŸá¯ááᯠááŒá±á¬áááº- âááœá±ááŒááºáá±ážâá
- ááœá±áá±ážáá»á±ááŸá¯á ááœá±ááᯠááŒááºáá±ážáá«áááºá
- ááŒááºá¡ááºážááœá±áá°ážááºááŸáá·áº BOB ááẠáááºááŸáá¡ááŒá±á¡áá±áá»á¬ážááᯠáááºážááá¯á·ááŸá áºáŠážá áá¯á¶áž ááá¯á¡ááºáá±á¬ááŒá±á¬áá·áº á¡áá»ááºážáá»ááºáž áááºáá°ááŒá¯áá«áááºá BOB ááœáẠUI ááŸáááŒá®áž á á¬áááºážááá¯ááºááá¯ááºáᬠá¡á á®áááºáá¶á á¬áá»á¬ážááŸáá·áº áá±áá¯áá»á¡á¬ážááŒáá·áº á¡ááœááºááá° ááœáŸá²ááŒá±á¬ááºážááááá¯ááºááá·áº áá±áá¬á¡áá»á¬ážá¡ááŒá¬ážááŸááá±á¬ááŒá±á¬áá·áº ááŒááºá¡ááºážááœá±áá°ážááºááá¯á· áá¯á¶ážáá¯á¶ážááŒá±á¬ááºážááẠáá»áœááºá¯ááºááá¯á· á¡áááºááá·áºáááŒá áºáá±ážáá«á áá¯áá¬ážááá¯ááºááŸá áºáá¯á¶ážáá±á«áºááá¯ááºááááºá
- ááá¹áá¬ááœá±áá±á¬ááºážáá¶ááŸá¯ áááŸááá±á¬á·áá«á
ááááºá¡áá±ááŒáá·áºá áá»áœááºá¯ááºááá¯á·ááẠá¡áá¬á¡á¬ážáá¯á¶ážá áááºáá²á·ááá·áº Kafka - event-bus ááœáẠevent bus áá áºáá»áá¯ážááᯠááŒá¯áá¯ááºáá²á·áááºá áá¬ážáá±á á¡áᯠáá»áœááºáá±á¬áºááá¯á·ááŸá¬ áá»ááŸá¯á¶ážááŸá¯ (sarcasm) áá áºáá¯áááºážááŸááááºá
áá±á¬ááºážáá»áá¯ážááá¯ážáá»áá¯ážááœá±á áá±á¬áºáá±á¬áºáááá¬áá«áááºá áá»áœááºá¯ááºááá¯á·ááẠáááºá
áºáá¬ážáá
áºá
á®ážááᯠááŒá¯áá¯ááºáá²á·ááŒá®ážá ááá¯ááá¯áááºááŸá¬ ááá¯á¡áá« áááºáá±á¬ááºááŸá¯á¡á¬ážáá¯á¶ážááẠáááºážáá±á«áºááœáẠáá°áááºáá«áááºá áááºážááẠáá®ááá¯ááºážááᯠááá¯ážááŸááºážá
á±áá±á¬áºáááºáž á
áá
áºááœáẠáá»áá¯á·ááœááºážáá»ááºáá
áºáá»ááºááᯠááááºáááºáá±ážáááºá Kafka áá»ááºáá»áááºá áá¯ááºáááºážá
ááºáááºááá·áºáááá·áºáááºá
Event-driven API ááá¯áá¬áá¬áá²
á€áá±ážááœááºážá¡ááœáẠá¡ááŒá±áá±á¬ááºážáá
áºáá¯ááẠMartin Fowler (GOTO 2017) á á¡á
á®áááºáá¶á
á¬ááœáẠááŸááááºá
á¡ááá¯áá»á¯á¶ážááŒá®áž áá»áœááºáá±á¬áºááá¯á· áá¯ááºáá²á·áá¬ááœá±á
- áá áºááá·áºáá»ááºáž á¡ááŒáá¯ááºá¡ááá¯áẠáááŸááºááŸá¯á¡á¬ážáá¯á¶ážááᯠááŒá¯á¶áá¯á¶ááá¯ááºáá«á ááŒá áºáááºáá»á¬ážááá¯ááŸá±á¬ááºááŸá¯. ááœááºáááºáá±á«áºááŸá á¡ááŒá±á¡áá±ááŒá±á¬ááºážáá²ááŸá¯á¡ááŒá±á¬ááºáž á áááºáá«áááºá á¬ážáá°ááá¯ááºážááᯠá¡áááá±ážááá·áºá¡á á¬ážá áááá¯áá»á¯ááºááá¯ááºááŸá¯ááŸááá±á¬ ááá¯ááŸá±á¬ááºááŸá¯ááá¯á· á¡ááŒá±á¡áá±ááŒá±á¬ááºážáá²ááŸá¯áá áºáá¯á¡ááŒá±á¬ááºáž á¡ááŒá áºá¡áá»ááºáá áºáá¯ááᯠáá±ážááŒá®áž á¡ááŒá±á¬ááºážá¡áá¬ááᯠá áááºáááºá á¬ážáá±á¬ á á¬ážáá¯á¶ážáá°áá»á¬ážá ááá¯áá±áá¬á០áá±á«áºáá¬ááá»áŸááᯠáááºááŸá¯áá«á
- á€ááá á¹á áááºááẠá¡ááŒá±á¬ááºážááŒá¬ážá á¬ááŒá áºááẠ(á¡áááá±ážáá»ááºáá»á¬áž) áá áºáá±áá¬áá¬ááŸá¬ áá áºáá¯áá¯ááŒá±á¬ááºážááœá¬ážááŒá®á á¥ááá¬á ááŸá¬áá°ááŸá¯á¡ááŒá±á¡áá± ááŒá±á¬ááºážááœá¬ážáá«ááŒá®á á¡ááŒá±á¬ááºážááŒá¬ážáá»ááºááœáẠááá«áááºááá·áº á¡ááŒá±á¡áá±ááŒá±á¬ááºážáá²ááŸá¯áá«ááŸááá±á¬ á¡áá»ááºá¡áááºá¡áá»áá¯á·ááᯠá áááºáááºá á¬ážáá±á¬ á á¬ážáá¯á¶ážáá°ááẠáááºážáá¡ááŒá±á¡áá±ááᯠááá¯ááºááá¯ááºááŸá¬ááœá±ááá¯ááºáá«áááºá
- á¡ááŒáá·áºáá¯á¶ážááœá±ážáá»ááºááŸá¯ááŸá¬ ááŒáá·áºá á¯á¶áá±á¬ á¡ááŒá áºá¡áá»ááºááᯠááŸá¬ááœá±ááŒááºážááŒá áºáááºá ááŒááºáááºááœáŸá²ááŒá±á¬ááºážááŒá áºá ááºááœáẠá á®áá¶áá±á¬ááºááœááºáá±ážááẠááá¯á¡ááºáá±á¬ á¡áá»ááºá¡áááºá¡á¬ážáá¯á¶ážáá«áááºáááº- áááºážááẠáááºááá·áºáá±áá¬á០áá±á¬ááºááŸááá¬áááºá áááºááá·áºá¡ááŒá±á¡áá±ááá¯á· áá±á¬ááºááŸáááœá¬ážáááºá áá±áá¬á¡ááá¡áá»áááºááá¯á· ááŒá±á¬ááºážáá²ááœá¬ážááẠá áááŒáá·áºá áá áºáá¯áááºážáá±á¬áá±ážááœááºážááŸá¬ ááŒá áºááá¯ááºááŒá±ááŸáá·áº áááºááááºážáááºážááá¯ááºáá±á¬ á¡áá»ááºá¡áááºááá¬áá
ááŒááºá¡ááºážááœá±áá°ážáẠá áááºááŒááºážááá áºá áááºáá áºááá¯ááºážá¡áá±ááŒáá·áºá áá»áœááºá¯ááºááá¯á·ááẠááááááœá±ážáá»ááºááŸá¯ááᯠá¡áá¯á¶ážááŒá¯áá²á·áááºá á¡áá±ážá áááºá¡áá»ááºá¡áááºáá»á¬ážááᯠáá¯ááºáá°áááºáááá¯á¡ááºáá±á¬ááŒá±á¬áá·áº á€ááá¯ážááŸááºážáá±á¬ááŒá áºáááºááᯠáá¯ááºáá±á¬ááºááŒááºážá¡ááŒáẠá¡ááŒá áºá¡áá»ááºá¡áá áºáá áºáá¯á á®ááẠá á¬ážáá¯á¶ážáá°áá»á¬ážáá¶á០áá±á¬ááºážááá¯áá»ááºáá»á¬ážááᯠááá°ááá¯ááºááá·áº ááŸááºážáááºážáá»ááºáá áºáá¯á á®ááᯠáá¯ááºáá±ážááá·áº ááŒááºááœááºážááᯠáááºááŸá¬ážááá¯ááºáá«áááºá
ááŒááºá¡ááºážááœá± áá°ážáẠáááºáá±á¬ááºááŸá¯ ááááºáá«áááá¯á·ááŒá±á¬áá·áº Kafka ááẠááá¯á¡ááºáááºááẠáá±á¬áááºáá¡ááá¬á ááá¯ááŸááºáááºá ááŒááºá¡ááºážááœá±áááºáá±á¬ááºááŸá¯ááẠááŒáá·áºáá¬ážáá±á¬ááá±á¬áá»ááºáá áºáá¯ááŒá áºáá¬áá«á áá¯ááºáááºážááẠáá»á±á¬áºááœáŸááºáááºáᯠááááºáá«á
Async áá²ááŸááºááŸá¯ AS IS
asynchronous áááŸááºááŸá¯áá»á¬ážá¡ááœáẠPHP áá¬áááẠáá»á¬ážáá±á¬á¡á¬ážááŒáá·áº RabbitMQ ááᯠá¡áá¯á¶ážááŒá¯áááºá áá±á¬ááºážááá¯áá»ááºá¡ááœáẠáá±áá¬ááᯠáá»áœááºá¯ááºááá¯á· á á¯áá±á¬ááºážááŒá®áž áááºážá á®áá¬ážáᬠáá°áá®áá±á¬ áááºáá±á¬ááºááŸá¯ááᯠá¡áá¯á¶ážááŒá¯áá°á áááºážááᯠáááºááŒá®áž áá±ážááá¯á·ááŒááºáž (ááá¯á·ááá¯áẠáááá¯á·áá²á·áá«)á API ááá¯ááºááá¯ááºá¡ááœááºá Lamoda ááẠSwagger ááá¯áááºááŒáœá áœá¬á¡áá¯á¶ážááŒá¯áááºá áá»áœááºá¯ááºááá¯á·ááẠAPI áá áºáá¯ááᯠáá®ááá¯ááºážááœá²áᬠSwagger ááœáẠáá±á¬áºááŒáᬠáá¯á¶ážá áœá²áá°ááŸáá·áº áá¬áá¬áá¯ááºááᯠáá¯ááºáá¯ááºáá«áááºá áá»áœááºá¯ááºááá¯á·ááẠá¡áááºážáááºá¡ááá·áºááŒáŸáá·áºáá¬ážáá±á¬ JSON RPC 2.0 ááá¯áááºáž á¡áá¯á¶ážááŒá¯áá«áááºá
á¡áá»áá¯á·áá±áá¬áá»á¬ážááœáẠESB áááºá áºáá¬ážáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááŒááŒá®áž á¡áá»áá¯á·ááŸá¬ activeMQ ááœáẠáá±ááá¯ááºááŒáá±á¬áºáááºáž áá±áá¯áá»á¡á¬ážááŒáá·áºá RabbitMQ - á á¶.
Async áá²ááŸááºááŸá¯ TO BE
ááŒá áºáááºáá»á¬áž-áááºá áºááŸáá áºááá·áº áááŸááºááŒááºážááᯠáá®ááá¯ááºážááœá²ááá·áºá¡áá«á á¥ááá¬áá áºáá¯á¡á¬áž ááŒá±áá¬áá¶ááá¯ááºáááºá áá»áœááºá¯ááºááá¯á·ááẠááŒá áºáááºááœá²á·á ááºážáá¯á¶áá±á¬áºááŒáá»ááºáá»á¬ážááŸáá áºááá·áº á¡áá¬áááºáá±áá¬áááŸááºááŸá¯ááᯠá¡áá¬ážáá°áá±á¬áºááŒáá«áááºá yaml áá±á¬áºáááºá áá»áœááºá¯ááºááá¯á·ááá¯ááºááá¯ááºáá¯ááºáá¯ááºáá¯ááºááŒááºážááá¯áá¯ááºáá±á¬ááºááááºááŒá áºááŒá®ážá áá»ááºááá±áá¬ááẠáááºááŸááºáá»ááºáá»á¬ážá¡á DTO áá»á¬ážááá¯áááºáá®ážáᬠáá¯á¶ážá áœá²áá°áá»á¬ážááŸáá·áºáá¬áá¬áá»á¬ážááᯠáááºážááá¯á·ááŸáá·áºá¡áá¯ááºáá¯ááºááẠáááºááŒá¬ážáá±ážáááºá áá»áá¯ážáááºááẠáá¬áá¬á áá¬ážááŸá áºáá»áá¯ážááá¯á· ááŒá±á¬ááºážáá²ááœá¬ážáááº- golang ááŸáá·áº php. áááºážááẠá á¬ááŒáá·áºááá¯ááºáá»á¬ážááᯠáááááºáááºážááŸááá±á á±ááẠáá°áá®áá±ážáááºá áá»ááºááá±áá¬á¡á¬áž ááá¯áááºááŒáá·áº áá±ážáá¬ážáá¬ážáá±á¬ááŒá±á¬áá·áº áá±á«áá®áá°áá±á¬ á¡áááºááᯠááá²á·áááºá
Kafka ááœáẠEvent-sourcing ááẠáá¯á¶ááŸááºá¡áá¬áá
áºáá¯ááŒá
áºáááºá Kafka Confluent áá¡ááááá¯ááºáááºážáá¬ážááŸááºážááŸá¡ááŒá±áá
áºáá¯ááŸááá«áááºá
á¡ááŒááºážáá»ááºážá¡áá¬ážáá° á á®ážááœá¬ážáá±ážáá¯ááºáááºážáá áºáá¯ááŸáááá·áºá¡áá«áá»áá¯ážááœááºááẠZalando ááẠá¡ááŒááºážáá»ááºážá¡áá¬ážáá°ááŒá±ááŸááºážáá»ááºáá áºáá¯ááᯠáááºáá®ážáá¬ážáá±á¬ááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·ááẠáááºážááᯠáááááá±á¬ááºáá±á¬ááºá¡áá¯á¶ážáááŒá¯ááá¯ááºáááºááŸá¬ ááá±á¬ááºááááŒá áºá áá¬áááºá
ááœáŸáá·áºáááºáá»áááºááœáẠáááá¯áá¬áá¯á¶á á¶ááŸá¬ á¡á±á¬ááºáá«á¡ááá¯ááºážááŒá áºáááº- áá»áœááºá¯ááºááá¯á·ááẠKafka á០ááá¯ááºááá¯ááºáááºáá±á¬áºáááºáž Event-bus ááŸáááá·áºáᬠáá±ážáá«á Kafka ááœááºáááºáááºá¡áááºááá·áºá¡áá»á¬ážááŒá®ážááŸááá«áááº- ááœá²á á¬ážáá»á¬ážá áá»áááºááœááºáá»áŸá¬ááŸááá°áá»á¬ážá áááºážáááºá¡áá»á¬ážááá¯ááºá áá±ážáá»á²á·áááºá¡ááœááºá¡áááºážááŸáá·áºá¡áá»á¬ážá¡áááºááá·áºááŒá áºáá±áááºá á€á¡áá¬ááá¯ááááºážáááºážáá¬ážááá¯áá«áááºá áá»áœááºá¯ááºááá¯á·ááẠGateway áá¯áá±á«áºáá±á¬ Events-bus ááŸáááá·áº ááá¯ááºáá°ážááŸá¯ááᯠá¡ááŒá®ážáááºáá»ááºáááºá á€áááºááŸá¬ á¡áááºááŒá±á¬áá·áºáááºážá
á¡á²á·áá«áá²á· áááºá áºáá¬áž
áá«ááŸááá¯áẠááœá²á¡ááœáẠáááºá áºáá¬ážá á€áááºááŸá¬ ááá¯ážááŸááºážá áœá¬ááẠááá¯ááºáá¶áá²á· http gateway ááŒá áºááŒá®ážá á¡áá±ážááŒá®ážáá±á¬ á¡áááºážááá¹ááá»á¬ážá áœá¬ááᯠáá¯ááºáá±á¬ááºáááº-
- áá¯ááºáá¯ááºááŒááºáž Validation â ááœá²áá»á¬ážááẠáá»áœááºá¯ááºááá¯á·á áááºááŸááºáá»ááºáá»á¬ážááŸáá·áº ááá¯ááºáá®ááŸá¯ááŸááááŸá á á áºáá±ážáá«á
- ááœá²áá¬á áá¬á áá áºááá¯ááá¯áááºááŸá¬á á€áááºááŸá¬ áááºááá·áºááœá²á·á ááºážáá¯á¶áá»á¬ážááŸáá·áº á¡áá»á¯á¶ážáááºáááºáᯠáá°áááááºážáá°áá±á¬ áá±ážááœááºážááᯠááŒá±áá±ážááá·áº áá¯áá¹ááá®ááŸá á¡áááááŸáá·áº áá áºáá¯áááºážáá±á¬ á áá áºááŒá áºáááºá ááŸááºáááºááŒá±á¬ááºáž á¡áááºááŒá¯ááŒááºážááẠá¡ááŒá±á¬ááºážá¡áá¬ááᯠáááááá»áá» áááºááŸááºááẠáá±áá¬á¡áá»áá¯ážá¡á á¬ážáá»á¬ážááŸáá·áº á á¬áááºážáá»á¬áž áá«áááºáá«áááºá
- Hash áá¯ááºáá±á¬ááºáá»áẠsharding á¡ááœáẠ- Kafka áááºáá±á·áá»áºááœá²á·á ááºážáá¯á¶ááẠáá±á¬á·áááºááá¯ážááŒá áºááŒá®áž áá±á¬á·á hash ááá¯á¡áá¯á¶ážááŒá¯á áááºážááᯠáááºááá·áºáá±áá¬ááœáẠááá·áºááááºááᯠááœááºáá»ááºáááºá
á¡áááºááŒá±á¬ááºá·
áá»áœááºá¯ááºááá¯á·ááẠáá»á±á¬ááœá±á·áá±á¬áá¯ááºáááºážá ááºááŒáá·áº áá¯áá¹ááá®ááŒá®ážáá áºáá¯ááœáẠá¡áá¯ááºáá¯ááºáá«áááºá áá¬ááŒá±á¬áá·áº áá áºáá¯áá¯ááᯠááŒá±á¬ááºážáá²áá¬áá²á áá«á á ááºážáááºááŸá¯áá áºáá¯áá«áá¡áá»áá¯ážá¡ááŒááºáá»á¬ážá áœá¬ ááááºááááºážááẠáá»áœááºá¯ááºááá¯á· áá»áŸá±á¬áºááá·áºáá«áááºá
1:n+1 áááŸááºááŸá¯áá»á¬áž (áá áºáá¯á០á¡áá»á¬ážá¡ááŒá¬áž)
Kafka ááẠáá¯á¶ážá áœá²áá°á¡áá áºáá»á¬ážááᯠAPI ááá¯á· áá»áááºáááºááẠá¡ááœááºááœááºáá°á á±áááºá
á áá áºáá»á¬ážá áœá¬ááœáẠáá áºáá»áááºáááºážááœáẠáá±ááºáá®ááẠááá¯á¡ááºáá±á¬ áááºážááœáŸááºáá áºáᯠááá·áºááœááºááŸáááẠ(á¡áá»áá¯á·ááŸáá·áº á¡áá áºá¡áá»áá¯á·ááœááº) ááá¯ááŒáá«á áá¯á·á ááááºáá áá»áœááºá¯ááºááá¯á·ááẠset-API ááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááá·áº á¡ááœá²áá áºáá¯ááᯠáá®ááœááºáá²á·ááŒá®áž áááºáá áá áºááẠá á¬ážáá¯á¶ážáá°ááááºá á¬áá»á¬ážááᯠá¡áááá±ážáá²á·áááºá ááá¯á¡áá« áá¬á áá¬á áá áºááẠáá±á«ááºážá ááºááá¯á· á¡ááºááááºáá»á¬áž áá±ážááá¯á·ááŒá®áž á áááºáááºá á¬ážáá°ááá¯ááºážá áááºážááᯠáááºáááºá á áá áºá¡áá áºáá áºáᯠáá±á«áºáá¬áá«ááŒá® - áá±á«ááºážá ááºá¡ááœáẠáá»áœááºá¯ááºááá¯á· áááºááŸááºáá±ážááá¯ážáá²á·áááºá áá¯ááºáá²á·á á¡ááœá²ááá¯ááºáááºážáá«áá±ááá·áº ááá¯ááá¯ážááŸááºážáá«áááºá
BOB áá¡ááá¯ááºážá¡á ááŒá áºááá·áº ááŒááºá¡ááºážááœá±-áá°ážááºááá á¹á ááœááºá áááºážááá¯á·ááᯠKafka ááŸáá áºááá·áº áááºáá°ááŒá¯áá¬ážááẠáá»áœááºá¯ááºááá¯á·á¡ááœáẠá¡áááºááŒá±áá«áááºá ááœá±ááŒááºáá±ážáááºáá¯ááá¯áááº- BOBá RT ááẠá€á¡ááŒá±á¬ááºážááááŸáááŒá®áž áááºážááá¯á·áá¡ááŒá±á¡áá±áá»á¬ážááᯠááŒá±á¬ááºážáá²ááá¯ááºáááºá á€á¡ááŒá±á¬ááºážááᯠFiscalization Service á០ááááŸáááŒá®áž áá»ááºáááºááŸááºáá áºáá¯áá¯ááºáá±ážáá«áááºá
áá»áœááºá¯ááºááá¯á·ááœáẠáá±á¬ááºáááºá¡á¬áž áááºážá ááŸá¬áá°ááŸá¯/ááŒááºá¡áá¬áá»á¬ážááá¯ááºáᬠááááºážáá»á¬ážá¡ááŒá±á¬ááºáž á¡áááá±ážááá·áº áá±á«ááºážá
ááºážáá¬ážáá±á¬ á¡áááá±ážáá»ááºáááºáá±á¬ááºááŸá¯ááᯠáááºáá®ážááẠá¡á
á®á¡á
ááºááŸááá«áááºá ááᯠá€áá¬áááºááẠá
áá
áºáá»á¬ážááŒá¬ážááœáẠáá»á¶á·ááŸá¶á·áá±ááŒá®ááŒá
áºáááºá Kafka á០áááºááá¯ááºáᬠá¡áá»ááºá¡áááºáá»á¬ážááᯠáááºážáá°ááŒá®áž áááºážááᯠáá¯á¶á·ááŒááºááẠá¡ááŒá±á¬ááºážááŒá¬ážáá»áẠáááºáá±á¬ááºááŸá¯ááᯠáááºááŒá¬ážáá±ážááẠáá»áœááºá¯ááºááá¯á·á¡ááœáẠáá¯á¶áá±á¬ááºáá«áááá·áºáááºá ááá¯ááºááá¯ááºáá²ááŸááºááŸá¯á¡áá
áºáá»á¬áž áááá¯á¡ááºáá«á
áá±áᬠ- áá±á¬ááºážááŸááº
á áá áºáá»á¬ážááŒá¬ážááŸá ááááºážá¡áá»ááºá¡áááºáá»á¬ážááẠááœáá·áºáááºážááŒááºáá¬ááŸá¯ááŒá áºáá¬ááẠ- ááá·áºááœáẠáááºááá·áº âááœá±ážá áœááºážáá±á¬áá¯ááºáááºážâ ááŸáá·áº áááºá backlog áááºáá»áŸááẠáá»á¬ážááŒá¬ážáá±áá«á á±á Lamoda ááœáẠá áá áºáá»á¬ážá០áá±áá¬áá»á¬ážááᯠá á¯áá±á¬ááºážááŒá®áž áá¯ááºáááºážá¡ááœááºáá±á¬ áá¬ááºáááºáááºááŒááºáá±á¬ á áá áºáá»á¬ážá¡ááœááºáá« ááŒááºáááºá¡áá¯á¶ážááŒá¯ááá¯ááºááá·áº áá¯á¶á á¶áá áºáá¯á¡ááŒá Ạááá·áºááœááºážáá±ážááá·áº Data Analytics áá¬ááá áºáá¯ááŸááááºá Kafka ááẠááá·áºá¡á¬áž áááºážááá¯á·á¡á¬áž áá±áá¬áá»á¬ážá áœá¬ááᯠáá»ááºááŒááºá áœá¬ áá±ážá áœááºážááá¯ááºááŒá®áž ááá¯á¡áá»ááºá¡áááºáá»á¬áž á á®ážáááºážááŸá¯ááᯠáá±ááºáá®á¡á±á¬áẠááááºážááááºážááá¯ááºá á±áá«áááºá
áá¯á¶áá°ááŸááºáááºáž
RabbitMQ ááœááºáá²á·ááá¯á· áááºáá±á·áá»áºáá»á¬ážááᯠáááºááŒá®ážáá±á¬áẠáá»á±á¬ááºááœá¬ážáááºááá¯ááºáá«á ááŒá áºáááºáá áºáá¯ááœáẠá á®áá¶áá±á¬ááºááœááºáááºá¡ááœáẠáá¯á¶áá±á¬ááºáá±á¬á¡áá»ááºá¡áááºáá«áááºáá±á¬á¡áá«á áá»áœááºá¯ááºááá¯á·ááœáẠá¡áá¬ááá¹áá¯á¡áá±á«áº áááŒá¬áá±ážáá®á ááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááŸááºáááºážááŸáááŒá®ážá ááá¹áááŸááá«á á€ááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááᯠá¡áá¯á¶ážáá»ááá¯ááºáááºááŒá áºáááºá
áá°ážáá°ááŸá¯ááŸááºáááºážá ááá¯ááŸá±á¬ááºááŸá¯áá¬áááẠá€á¡ááŒá±á¬ááºážá¡áá¬á¡ááœáẠáá±ážáá¬ážááŸá¯ááŒááºážáááºááŸá¯á¡áá±á«áº áá°áááºáááºá Kafka ááẠááá·áºá¡á¬áž ááá¯ááŸá±á¬ááºááŸá¯á¡áá»áááºááŸáá·áº áá±áá¬ááá¬áá¡áá±á«áº ááá·áºáááºáá»ááºáá»á¬ážááᯠááá¯ááºáá»á±á¬áá®ááœá±á áœá¬ áááºááŸááºááá¯ááºá á±áá«áááºá ááŒááºážáááºáá±á¬á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážá¡ááœááºá á¡áá»áááºááá¯á¡ááœááºáž áá¯ááºáá±á¬ááºááá¯ááºá áœááºážáááŸáááá·áºá¡ááŒá±á¡áá±ááœááºááẠáá¯á¶ážá áœá²áá°á¡á¬ážáá¯á¶ážááẠá¡áá»ááºá¡áááºááá»á±á¬ááºáá® á¡áá»áááºáá°áááºááŸá¯ááẠá¡áá±ážááŒá®ážáá«áááºá áááºážááẠá¡áá»á¬ážá¡á¬ážááŒáá·áº áá±áá¬áá»á¬ážááᯠááááºážáááºážááẠááŒá áºááá¯ááºáááºá áááºáá°áá áºá¡áá±á¬ááºá¡áá¶á·á¡ááœáẠáá¯á¶áá±á¬ááºáá«áááºá
ááá¯á·áá±á¬áẠKafka ááŸáá·áº ááááºážááŸá®ážáá±á¬áá°áá»á¬ážá¡ááœáẠ(áá¯á¶ááẠá
á¬ááœááºá
á¬áááºážááŸáááºážááŒá
áºáááº)á
AMQP ááœáẠáááºážá á®áá»á¬áž ááŸááááº- áá»áœááºá¯ááºááá¯á·ááẠá á¬ážáá¯á¶ážáá°á¡ááœáẠáááºážá á®ááẠáááºáá±á·áá»áºáá»á¬áž áá±ážáá«áááºá áá¯á¶ááŸááºá¡á¬ážááŒáá·áºá áááºážá á®ááŒááºážááᯠáá°áá®áá±á¬á á®ážááœá¬ážáá±ážáá¯áá¹ááááŒáá·áº á áá áºáá áºáá¯ááŒáá·áº áá¯ááºáá±á¬ááºáááºá áááºááẠá áá áºáá»á¬ážá áœá¬ááᯠá¡ááŒá±á¬ááºážááŒá¬ážááẠááá¯á¡ááºáá«áá áááºážááá¯á·ááᯠááá¯ááºááá¯ááºááœá¬ážáá»á¬ážááá·áº fanout ááá¹ááá¬ážááŒáá·áº áá²ááŸááºááẠá¡ááá®áá±ážááŸááºážá¡á¬áž áááºážá á®á á¬áá»á¬ážá áœá¬ááœáẠá á¬áá±ážááẠááá¯á·ááá¯áẠáá²ááŸááºááŸá¯ááᯠáááºááŒá¬ážáá±ážááá¯ááºáááºá
Kafka ááœáẠá¡áá¬ážáá° á áááºáá°ážáá áºáá¯ááŸááááºá á¡ááœá±á¬áá»ážáááºáá±ážáá¬ážáá²á·á á¬ááœá±ááᯠáááºááŒá®ážááẠááá»á±á¬ááºáá«áá°ážá áá¯á¶ááŸááºá¡á¬ážááŒáá·áºá áááºááẠKafka ááá¯á· áá»áááºáááºáá±á¬á¡áá«á áááºááẠáááºáá±á·áá»áºáá»á¬ážá¡á¬ážáá¯á¶ážááᯠáááºáá¶áááŸáááŒá®áž áááºáá»ááºáá¬ážáá²á·ááá·áºáá±áá¬ááᯠááááºážáááºážááẠááœá±ážáá»ááºááœáá·áºááŸááááºá ááá¯ááá¯áááºááŸá¬ áááºááẠáááºááá¯ááºáááºáááºá áááºááẠá á¬ááá¯áááºááŒá®ážáᯠá¡ááŸááºá¡áá¬ážááŒá¯áááºááá¯ááºáá±á¬áºáááºáž áááºáááºáááºáááºááŸá¯ááá¯ááºááá·áº id ááᯠááááºážáááºážáá«á áááºáááºááŸááºáá¬ážáá±á¬ Id ááᯠoffset áá¯áá±á«áºááŒá®áž ááá¹ááá¬ážááẠcommit offset ááŒá áºáááºá
ááá¯á·ááŒá±á¬áá·áº ááœá²ááŒá¬ážááŒá¬ážáá¬ážáá±á¬ áá¯áá¹áááá±áááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááá¯ááºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá áá»áœááºá¯ááºááá¯á·ááœáẠááá°áá®áá±á¬ááá¯ááºáá¶áá»á¬ážá¡ááœáẠá¥ááᬠ4 áá¯ááœáẠBOB ááŸáááẠ- Lamoda ááẠáá¯ááŸá¬ážá áá¬áááºá áááºá áá°áááááºážá Belarus ááœááºááŸááááºá áááºážááá¯á·ááᯠáá®ážááŒá¬ážá á®á¡áá¯á¶ážááŒá¯áá¬ážáá±á¬ááŒá±á¬áá·áºá áááºážááá¯á·ááœáẠá¡áááºážáááºááœá²ááŒá¬ážáá±á¬ configs ááŸáá·áº áááºážááá¯á·á ááá¯ááºááá¯ááºáá¯ááºáááºážááá¯ááºáᬠáá¯áá¹ááááŸááááºá áá»áœááºá¯ááºááá¯á·ááẠáááºááá·áºááá¯ááºáá¶ááá¯áááºááœáŸááºážááŒá±á¬ááºáž áááºáá±á·áá»áºááœáẠáá±á¬áºááŒáááºá ááá¯ááºáá¶áá áºáá¯á á®ááŸá BOB áá¯á¶ážá áœá²áá°ááá¯ááºážááẠááá°áá®áá±á¬ groupId ááŒáá·áºáááºááŒááŒá®áž áááºáá±á·áá»áºááẠáááºážááá¯á·ááŸáá·áºááááºááá¯ááºáá«á áááºážááá¯á·ááẠáááºážááᯠáá»á±á¬áºááœá¬ážááẠá ááá¯ááá¯áááºááŸá¬á áá»ááºááŒááºáž offset +1 áá»á°ážááœááºáááºá áá»áœááºá¯ááºááá¯á·áááœá±áá±ážáá»á±ááŸá¯áááºáá±á¬ááºááŸá¯á០áá°áá®áá±á¬á¡ááŒá±á¬ááºážá¡áá¬ááᯠáááºáá«áá áááºážááẠáá®ážááŒá¬ážá¡á¯ááºá á¯áá áºáá¯ááŸáá·áº ááŒá¯áá¯ááºáá±á¬ááŒá±á¬áá·áºá á¡á±á¬á·ááºáááºáá»á¬ážááẠááŒááºáá±á¬ááºáááºááá¯ááºáá«á
ááœá²ááá¯á¡ááºáá»ááºáá»á¬áž-
- áá±áá¬ááŒáá·áºá á¯á¶ááŸá¯á ááŒá áºá ááºááᯠá á®áá¶áá±á¬ááºááœááºááá¯ááºááẠáá±áá¬á¡áá¯á¶á¡áá±á¬ááºááŸáá á±ááá¯áá«áááºá
- ááá¬ááá áá»áœááºá¯ááºááá¯á·ááẠEvents-bus ááá¯á· ááœáŸá²á¡ááºáá±ážáá«áááºá
- á¡áááá·áºá á¡áá±ážááŒá®ážáááºá ááŒááºáá¬ááá²á·ááá á¹á ááŸá¬ áá»áœááºáá±á¬áºááá¯á·á áááá¯ááºážáá²á· ááœá²áá¯ááºááá±á¬á·áááºá á¡ááŒá±á¬ááºážááŒá¬ážáá»ááºáá»á¬ážááŸáá·áºá¡áá°á á¡ááŸá¬á á¬ááẠá¡áá±ážáááŒá®ážáá«á áááºážááá¯á·ááẠáá áºáá¬ážáááºážááŸááá±ááá·áº á¡ááŒá±á¬ááºážááŒá¬ážáá»ááºáá»á¬ážááŒá áºáá«á áááºááá·áºá¡ááŸá¬á á¬ááẠááááá±á¬ááºááŸááááºááŒá áºá á± á¡á®ážáá±ážááºááẠáá°áá®áááºááŒá áºáá«áááºá ááŒááºá¡ááºážááœá±ááá á¹á ááœáẠááŸááºážáááºážáá±á¬ áá¯ááºáááºážá ááºáá áºáᯠááŸááááºá áá»áœááºá¯ááºááá¯á·ááẠá¡ááŸá¬á á¬ááᯠááŒá±á¬ááºážáá²áá«á ááŒáœááºážáá»ááºáá»á¬áž áá±á«áºáá±á«ááºáá¬áááºááŒá áºááŒá®áž ááŒááºá¡ááºážááœá±ááᯠáááºáá®ážááŒááºáž ááá¯á·ááá¯áẠáá¯ááºáá±á¬ááºáááºááá¯ááºáá« - áá»áœááºá¯ááºááá¯á·ááẠááá°áá®áá±á¬ á¡ááŒá±á¡áá±ááœáẠáá¯ááºáá¯á¶ážááœá¬ážáá«áááºá
- ááŸá±á·áá±á¬ááºáá®ááœááºááŸá¯á áá»áœááºá¯ááºááá¯á·ááœáẠá ááá¯ážáá áºáá¯ááŸáááŒá®áž ááᯠáá»áœááºá¯ááºááá¯á·ááẠAPI áá áºáá¯á¡á á¬áž ááœá²áá»á¬ážááᯠáááºáá®ážáá«áááºá áá»áœááºá¯ááºááá¯á·ááẠáá»áœááºá¯ááºááá¯á·ááááºáá±á¬ááºááŸá¯áá»á¬ážááá¯á· á¡ááŒá áºá¡áá»ááºá¡áá áºáá»á¬ážááŸáá·áº ááŸáááŒá®ážáá¬ážá¡áá¬áá»á¬ážáá®ááá¯á· ááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážá¡ááŒá±á¬ááºáž á¡áá»ááºá¡áááºáá»á¬ážááᯠáá»ááºááŒááºá áœá¬ááŸáá·áº áá±ážáá±á«áá±á«ááŒáá·áº áá±ážááá¯á·ááẠáááºážáááºážáá áºáᯠááá¯á¡ááºáá«áááºá áá®ážááŒá¬áž git repository ááŸáá·áº code generator áá»á¬ážááœáẠáá¯á¶áááºááŸááºáá»ááºáá áºáá¯á¡á¬ážááŒáá·áº áááºážááᯠá¡á±á¬ááºááŒááºáááºá ááá¯á·ááŒá±á¬áá·áºá ááá°áá®áá±á¬ áááºáá±á¬ááºááŸá¯áá»á¬ážááŸá áá±á¬ááºáááºáá»á¬ážááŸáá·áº áá¬áá¬áá»á¬ážááᯠááŸáááŸáá¯ááºážáá±á¬ááºááœááºáá«áááºá
Lamoda ááŸá Kafka
áá»áœááºá¯ááºááá¯á·ááœáẠKafka áááºáááºááŸá¯ áá¯á¶ážáá¯ááŸááááºá
- ááŸááºáááºážáá»á¬áž;
- R&D;
- á¡á²á·áá«áá²á· áááºá áºáá¬ážá
ááá±á·áá»áœááºá¯ááºááá¯á·ááẠáá±á¬ááºáá¯á¶ážá¡áá»ááºá¡ááŒá±á¬ááºážááá¯áᬠááŒá±á¬áá±ááŒáááºá ááœá²á á¬áž-áááºá áºáá¬ážáá»á¬ážááœááºá áá»áœááºá¯ááºááá¯á·ááœáẠá¡ááœááºááŒá®ážáá¬ážáá±á¬ áááºáááºááŸá¯áá»á¬áž áááŸááá«á ááœá²á á¬áž (áá¬áᬠá áá¯) ááŸáá·áº á¡ááŒá±á¬ááºážá¡áᬠáá áá¯áá¬ááŸááááºá á ááºážáááºážá¡áá á¡ááŒá±á¬ááºážá¡áá¬áá áºáá¯ááẠáá¯ááºáááºážá ááºáá áºáá¯ááŒá áºáááºá áá«áá±ááá·áº áá«á ááááºááœá±á·áá²á·á¡áá»ááºááŒá áºááŒá®áž á¡áá¯áá² áá»áœááºáá±á¬áºááá¯á· ááááœá±á·ááá¯ááºáááºá
á¡áá±á«áºá rps ááááºáá«á ááŒááºá¡ááºážááœá±áá¯ááºáááºážá
ááºááᯠá
áááºážááŒá¬áá±á¬ááºáá»ááºážááŒáá·áº á¡ááŸááºá¡áá¬ážááŒá¯áá¬ážááŒá®áž (áá¯ááºáá«áááºá X áááºááá¯ážáá±á«áºááŸá)á áááºážáá±á¬ááºááá¯ááºážááẠá¡ááŒá±á¬ááºážá¡áᬠá¡ááºááááºáá¯ááºáááºážá
ááºááŒá
áºáááºá
Lamoda áááºááá±á¬ááºááœáẠáá¯ááºáá¯áẠáááºážáá±á«ááºážáá»á¬ážá áœá¬ áá«áááºááŒá®áž áá±áá¬ááᯠá¡áá»áááºááá¯ááºáž á¡ááºááááºáá¯ááºáá¬ážáááºá á¡áá»áá¯á·áá±á¬ collection áá»á¬ážááẠáááºááŸááºáá»ááœá¬ážááŒá®ááŒá áºááŒá®áž áááºážááá¯á·ááᯠá¡á á¬ážááá¯ážáááºá¡ááœáẠá¡áá áºáá»á¬ážááœááºááŸááá¬áᬠáá±á¬áºáááºá¡áá áºáá»á¬ážááẠcatalogue ááœáẠá¡áááºáááŒááºáá±á«áºáá¬áá«áááºá áá»áœááºá¯ááºááá¯á·ááẠáá»áœááºá¯ááºááá¯á·ááá±á¬ááºáááºáá»á¬ážá¡ááœáẠááááºááŒááºááœáẠá áááºáááºá á¬ážááœááºá¡áá¬áá»á¬ážááᯠááá·áºááŸááºážáááºááŒáá¯ážá á¬ážáá±áá±á¬ááŒá±á¬áá·áº á¡áá áºáá±á¬á¡áá¬áá»á¬ážááᯠá¡áááºáááŒááºáááºáá°á áááºážááá¯á·ááᯠáá¬ááºáá¯á¶ááá¯ááºáᬠáááºáá¬ážááŒááºáá¯á¶ážááᯠá¡ááºááááºáá¯ááºáá«á
áááºážáá±á¬ááºá¡ááœááºá¡ááááºáá»á¬ážááẠáá¯ááºáá¯ááºááœááºážáá¶ááŸá¯áá»á¬ážá ááá¯ááá¯áááºááŸá¬ áá¯ááºáá¯ááºáá»á¬ážááœáẠá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááŒá áºáááºá áá±á¬ááºá»á¬ážáá±ážááœá±á áá¬ááºáá¯á¶ááá¯ááºá áá«ááºáá¯á¶ááá¯ááºááŒá®áž áá±á¬ááºáá áºáá« áááºááá¯ááºááŒáá¬ááᯠááœá±á·ááá¯ááºáá«áááºá - ááŒá áºáááºá¡á á¯á¶ááᯠáááºáá¬ážáááºá
Lamoda Events ááœá±ááŸá¬ áá¯á¶ážáá«áááºá
á¡á±á¬ááºáá«áá¯ááºáááºážáá»á¬ážá¡ááœáẠáá»áœááºá¯ááºááá¯á·ááẠáááºáá±á¬ááºáá¬ážáá±á¬ áááá¯áá¬ááá¬ááᯠá¡áá¯á¶ážááŒá¯áááº-
- á¡ááŒá±á¡áá±ááᯠááŒá±áá¬áá¶áá«á: áá«áááºáááºáááºááá·áº á áá áºá¡á¬ážáá¯á¶ážá០áá±á«áºááá¯ááŸá¯áá¯ááºáá±á¬ááºáááºááŸáá·áº á¡ááŒá±á¡áá±ááŒá±áá¬áá¶ááŒááºážá ááœá±áá±ážáá»á±ááŸá¯á á¡ááŒá±á¡áá±áá»á¬ážá ááœá±á á¬áááºážááŸááºážáááºážáá»á¬ážá á¡áááá±ážáá»ááºáá»á¬ážá á€ááœáẠáá»áœááºá¯ááºááá¯á·ááẠáá»ááºážáááºáááºážááᯠá ááºážáááºáá²á·ááŒá®ážá áááááá¬áá»á¬ážááŒá¯áá¯ááºáá¬á áá»áá¯á·ááœááºážáá»ááºá¡á¬ážáá¯á¶ážááᯠá á¯áá±á¬ááºážáᬠá á¬ááœááºá á¬áááºážáá»á¬ážááᯠáá±ážáá¬ážáᬠáááºážááá¯á¡áá¯á¶ážááŒá¯áá¯á¶ááᯠáá»áœááºá¯ááºááá¯á·ááá¯ááºáá±á¬áºááá¯ááºáááºáá»á¬ážá¡á¬áž ááŒá±á¬ááŒáá²á·áááºá
- áá¯ááºáá¯ááºáááºáá»á¬ážááᯠá¡ááºááááºáá¯ááºáá±áááº- ááœá²á·á ááºážááŸá¯áá¯á¶á á¶á áááºáá¬áá±áá¬á áááá±áááá¹ááá¬áá»á¬ážá á áá áºáá áºáá¯ááẠ(ááŒáááá·áº) ááá¯áááºáááºááŸáá·áºá¡áá»á¬ážá¡ááŒá¬ážáá±ážáááºá
- á¡á®ážáá±ážááºá push ááŸáá·áº sms: á¡á±á¬áºáá« á á¯áá±á¬ááºážááŒá®ážááŒá®á á¡á±á¬áºáá«áá±á¬ááºááŒá®á ááŒááºáááºáá¶ááŒá®ážááŒá® á áááŒáá·áº á¡áá»á¬ážááŒá®ážááŸááááºá
- á áá±á¬á·á ááá¯áá±á«áẠáááºáááºážááá¯ážááŒááºážá â áá á¹á ááºážáá»á¬ážá á¡áá±á¡ááœáẠá¡ááºááááºá áá¶áá«ááºáá»á¬ážáá¬- ááá¯áá±á«ááºááá¯á· áá±á¬ááºááŸáá ááŒááºáá¬á áá¯ááºáá á¹á ááºážááŒáá¯áááºá á¬áááºážááœááºážááŒááºážááá¯ááºáᬠá áá áºá¡á¬ážáá¯á¶ážááẠáááºááŸááá±áá¬ááŒáá·áº áá¯ááºáá±á¬ááºááẠááá¯á¡ááºáá«áááºá áááºááŸáááœááºá á áá±á¬á·ááºá¡ááºááááºá áá áºááẠá¡áá±á¬áºáá±ážááŸá¯ááºááœá±ážáááºá Kafka ááẠáááºážááá¯ááá¯ážááŸááºážá á±áááºá
- áá±áá¬áá»á¬ážááá¯ááœá²ááŒááºážá áááºááŒá¬ááŒááºáž (R&D áá¬á)á ML áááááá¬áá»á¬ážá ááœá²ááŒááºážá áááºááŒá¬ááŸá¯á á á¬áááºážá¡ááºážáá»á¬ážá áá»áœááºá¯ááºááá¯á·ááẠá¡áá»ááºá¡áááºáá»á¬ážááᯠááœáá·áºáááºážááŒááºáá¬á á±ááẠááá¯áá¬ážááẠ- Kafka ááẠá€á¡áá¬á¡ááœáẠáá±á¬ááºážááœááºááá·áºáá»á±á¬áºáá«áááºá
ááᯠááœááºáá²á·ááá·áº ááŒá±á¬ááºáá¡ááœááºáž ááŒá áºááœá¬ážáá²á·ááá·áº ááŒá®ážáá¬ážáá±á¬ á¡áá¯á¡áá áºáá»á¬ážááŸáá·áº á áááºáááºá á¬ážá áá¬áá±á¬ááºážááá·áº ááŸá¬ááœá±ááœá±á·ááŸáááŸá¯áá»á¬ážá¡ááŒá±á¬ááºáž ááá¯á áááºáááºá á¬ážá áá¬áá±á¬ááºážááá·áº á¡ááá¯ááºážááŒá áºáááºá
áá®ááá¯ááºážááŒá¿áá¬áá»á¬áž
áá»áœááºá¯ááºááá¯á·ááẠá¡áá áºáá áºáá¯ááᯠáá¯ááºááá¯áááºáᯠááá¯ááŒáá«á áá¯á·- á¥ááá¬á áá±ážááá¯á·ááŸá¯áá¯ááºáááºážá ááºáá áºáá¯áá¯á¶ážááᯠKafka ááá¯á· ááœáŸá²ááŒá±á¬ááºážáá«á ááᯠáá¯ááºáááºážá ááºá áá áºá áááºáá áºááá¯ááºážááᯠBOB ááœáẠá¡ááŸá¬á ᬠá á®áá¶áá±á¬ááºááœááºáá±áá«áááºá áá±ážááá¯á·ááŒááºážáááºáá±á¬ááºááŸá¯ááá¯á· á¡áááá·áºááœáŸá²ááŒá±á¬ááºážááŒááºážá á¡áááºá¡áááºáá¯ááºááŸá±á¬ááºáá¯á¶ááá¯á· ááŒá±á¬ááºážááœáŸá±á·ááŒááºáž á¡á ááŸááááºááá¯á·áá±á¬ááºááœááºááœáẠá¡ááŒá±á¡áá±áá¯á¶á á¶áá áºáá¯ááŸááááºá áá±ážááá¯á·ááŒááºážá¡ááœáẠáááºá á°ážáá¬ážáá±á¬ API á¡á á¯á¡áá±áž ááŸá áºáá¯áááºá monolith áá áºáá¯áá¯á¶áž ááŸááá«áááºá ááá¯á·áá±á¬ááºááŸá¯á¡ááŒá±á¬ááºáž ááá¯ááááŒáááºá
á€á¡áá¬áá»á¬ážááẠáá°áá®áá±á¬áá±áá¬áá»á¬ážáá¯áááºááá±á¬áºáááºáž BOB ááŸáá·áº áááºá¹áá±á¬á áá áºááŸá ááŸá¬áá°ááŸá¯ááœáẠááá°áá®áá±á¬á¡ááŒá±á¡áá±áá»á¬ážááŸááááºá á¥ááá¬á¡á¬ážááŒáá·áºá á¡áá»áá¯á·áá±á¬ ááá¯á·áá±á¬ááºáá±ážáááºáá±á¬ááºááŸá¯áá»á¬ážááẠá¡áááºá¡áááºá¡ááŒá±á¡áá±áá»á¬ážááᯠáááá¯á·áá² áá±á¬ááºáá¯á¶ážá¡ááá·áºáá»á¬ážáá¬ááŒá áºáááº- "áá±ážááá¯á·áááº" ááá¯á·ááá¯áẠ"áá»á±á¬ááºáá¯á¶ážáááº"á á¡ááŒá¬ážáá°áá»á¬ážááá° áá¯ááºá ááºááœá±á·áá»á¬ážááŸá¯ááŸáá·áº áááºáááºá á¡áá±ážá ááẠá¡á á®áááºáá¶áááºááŒááŒáááºá áá°ááá¯ááºážááœáẠáááºážááá¯á·á ááá¯ááºááá¯áẠááá¬ážááẠá ááºážáá»ááºážáá»á¬áž ááŸááá«áááº- á¡áá»áá¯á·á¡ááœááºá á¡á®ážáá±ážááºááẠááŸááºáááºáááºá ááá¯ááá¯áááºááŸá¬ áááºážááᯠá á®áá¶áá±á¬ááºááœááºáááá·áºáááºá á¡ááŒá¬ážáá°áá»á¬ážá¡ááœáẠáááºážááẠá¡áá»á¯á¶ážááááºáá±á¬áºáááºáž áááºááœááºááẠáá¯ááºážáá¶áá«ááºáá áºáá¯ááŸááá±áá±á¬ááŒá±á¬áá·áº ááŸá¬áá°ááŸá¯ááᯠáááºáááºáá¯ááºáá±á¬ááºáá±áááºááŒá áºááŒá®áž áá áºá á¯á¶áá áºáŠážá០ááá¯ááá¯á·áá±á¬á¡ááŸá¬á á¬ááᯠáá¯á¶ážááá¯ááºáá±á¬ááºáááºááá¯ááºááŒá±á¬ááºáž ááŒá±á¬áá«áááá·áºáááºá
áá±áá¬á á®ážááŒá±á¬ááºáž
Kafka áááá á¹á ááœááºá data flow ááá¯á á®á ááºáááºáá±ážááœááºážáá±á«áºáá¬áááºá á€áá¬áááºááœáẠá¡áá»ááºáá»á¬ážá áœá¬ááᯠá¡ááŒá±áá¶á áá»á°áá¬ááœá±ážáá»ááºááŒááºáž áá«áááºáááºá áááºážááá¯á·á¡á¬ážáá¯á¶ážááᯠáá»á±á¬áºááŒááºááŒáá«á áá¯á·á
áá±á«ááºážá ááºáá áºáá¯ááœáẠááá¯á·ááá¯áẠááá°áá®áá±á¬ á¡ááŒá±á¬ááºážá¡áá¬áá áºáá¯ááœáẠááŸááá«ááá¬ážá
áá»áœááºá¯ááºááá¯á·ááœáẠááœá²áááºááŸááºáá»ááºáá áºáá¯ááŸááááºá BOB ááœááºá ááá¯ááá¯á·áá±á¬á¡áááá·áºááŸáá·áºááá¯áá²á·ááá¯á·áá±á¬á¡ááŸá¬á á¬áá»á¬ážáá±ážááá¯á·áááºááá¯á¡ááºááŒá±á¬ááºážáá»áœááºá¯ááºááá¯á·áá±ážáá¬ážáá¬ážááŒá®áž- ááŸá¬áá°ááŸá¯áá¶áá«ááºá áááºážáááœá²á·á ááºážááŸá¯á á¡áá»áá¯á·áá±á¬ SKU ááŸáá·áº áá¬ážáá¯ááºáá»á¬ážá áááºááŒáá·áºáá±á¬áºááŒáááºá áá¯ááºáá á¹á ááºážáá»á¬áž ááá¯áá±á«ááºááá¯á·áá±á¬ááºááŸááá±á¬á¡áá«á ááá¯á·áá±á¬ááºááŸá¯ááẠá¡ááŒá±á¡áá±áá»á¬ážá á¡áá»áááºáá¶ááááºááŸáá·áº ááá¯á¡ááºááá·áºá¡áá¬á¡á¬ážáá¯á¶ážááᯠáááºáá¶áááŸááááºááŒá áºáááºá ááá¯á·áá±á¬áº BOB ááœáẠá€áá±áá¬á¡ááºááááºáá»á¬ážááᯠáááºáá¶ááá°ááá¯áá«áááºá áá»áœááºá¯ááºááá¯á·ááœáẠáá±ážááá¯á·ááŸá¯á០áá±áá¬ááᯠáááºáá¶áááŸáááẠááŒá±á¬ááºážááŒááºáá¯ááºáááºážá ááºáá áºáá¯ááŸááááºá á€ááŒá áºáááºááẠáá°áá®áá«ááá¬ážá áá«ááŸááá¯áẠáá«á áá°á·áá²á·ááá¯ááºááá¯ááºá¡ááŒá±á¬ááºážá¡áá¬áá²á· ááá¯ááºáááºáá²á· áá®ážááŒá¬ážáá²ááŸááºááŸá¯áá áºáá¯áá¬ážá
á¡áá»á¬ážá á¯ááŸá¬á áááºážááá¯á·ááẠá¡ááœááºáááºáá°ááŒá®áž áá±á«ááºážá ááºáá áºáá¯ááŒá¯áá¯ááºááẠááœá±ážáá±á¬ááºááŸá¯ááẠá¡ááŒá±á¡ááŒá áºáááŸááá«á á¡áááºááŒá±á¬áá·áºááá¯áá±á¬áº áá®ážááŒá¬ážá¡ááŒá±á¬ááºážá¡áá¬áá áºáá¯ááẠáá®ážááŒá¬ážá á¬ážáá¯á¶ážáá°áá»á¬ážá áá®ážááŒá¬ážááœá²á·á ááºážáá¯á¶áá»á¬ážá á€á¡áá¬á¡á¬ážáá¯á¶ážá áá®ážááŒá¬ážáá»áá¯ážáááºááᯠááá¯ááá¯áá±á¬ááŒá±á¬áá·áºááŒá áºáááºá áá«áá±ááá·áº á¡ááŸááºáá±á¬á· ááá¯ááºáá«áá°ážá
áááºáááºá¡áá Ạááá¯á·ááá¯áẠááœá²á¡áá áºáá¬ážá
áá«áá±ááá·áº áá°áá®áá²á· á¡ááŒá áºá¡áá»ááºááœá±ááᯠáá¯á¶ážááẠáá±á¬ááºááŒá¿áá¬áá áºáᯠáá±á«áºáá¬áá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá ááá¯á·áá±á¬ááºááŸá¯á áá áºá¡á¬ážáá¯á¶ážááẠBOB áá¯ááºáá±ážááá¯ááºááá·áº DTO á¡áá»áá¯ážá¡á á¬ážááᯠááá¯ááºáá¯ááºááá¯ááºáá«á á¡áá¯ááºáá®ááᯠáááºážááá¯á·áᶠáá»áœááºá¯ááºááá¯á· áá±ážááá¯á·áá±á¬áºáááºáž áááºážááá¯á·á áááºážááᯠáááá¯á¡ááºáá±á¬ááŒá±á¬áá·áº áááºážááᯠáááááºážáááºážáá² ááŒá áºáááº-áááºá áºáá¬áž áá¯ááºáááºážá ááºááᯠá áááºááá·áº ááŸá¯áá±á¬áá·áºá០á€á¡ááœááºááᯠááá¯á¡ááºáá«áááºá
á€á¡ááœááºááá¯á¡ááºááá·áº ááŒá áºáááº-áááºá áºá¡ááœáẠá ááºážáá»ááºážáá áºáá¯ááᯠáá»áœááºá¯ááºááá¯á·ááááºáááºáá«áá ááá¯á·áá±á¬áẠBOB ááœáẠááá¯á·ááá¯áẠá áááºááá·áºááŒá áºáááºááá¯ááºááœááºáá°ááœáẠáááºáá±á¬ááºážá¡áááºááŒá¯ááŒááºážá ááºážáá»ááºážáá»á¬ážááᯠáááºááŸááºááá±á¬á·áááºááŒá áºáááºá ááŸááºáááºááŒá±á¬ááºáž á¡áááºááŒá¯ááŒááºážááẠáááºáá±á¬ááºááŸá¯áá áºáá¯áá¯á¶ážááœáẠáá»á¶á·ááŸá¶á·ááœá¬ážááẠ- áááºážááẠá¡ááœááºá¡áááºááŒá±áááºááá¯ááºáá«á
áá±á¬ááºááŒá¿áá¬áá áºáá¯ááá±á¬á· ááá¯ážááŒáá·áºáá¬ááá¯á· ááœá±ážáá±á¬ááºááŸá¯áá«á ááŒá áºáááºááœáẠáá áºá á¯á¶áá áºáᯠáááºááá·áºááẠááá¯á¡ááºááŒá±á¬ááºáž áá»áœááºá¯ááºááá¯á·á¡á¬áž ááŒá±á¬ááŒá¬ážáá¬ážááŒá®ážá áááºážááᯠáá»áœááºá¯ááºááá¯á· á ááºážá á¬ážáá«áá áááºážááẠáá®ážááŒá¬ážááŒá áºáááºáá áºáᯠááŒá áºááá·áºáááºá ááá¯á·áá±á¬áº áá»áœááºá¯ááºááá¯á·áá¡á á®á¡á ááºááœáẠáá®ážááŒá¬ážááŒá áºáááºááẠáá®ážááŒá¬ážá¡ááŒá±á¬ááºážá¡áá¬áá áºáá¯ááŒá áºáááºá áá®ážááŒá¬ážá¡ááŒá±á¬ááºážá¡áá¬ááẠá¡áááºááœááºáá±á¬áºááŒáá¬ážáá±á¬ áá¯ááºáááºážá ááºáá áºáá¯áá¯á¶ážááŒá áºáááºá áá±á¬á·ááºáá²á¡ááºáá»ááºáá®áá¬ááẠJSON schema ááœáẠá¡ááŒá¬ážá¡ááœááºáá áºáá¯ááᯠááá¯ážááŸááºážá áœá¬ááá·áºáᬠáááºážááᯠááŒááºáááºáá¯ááºáá±ážááẠááœá±ážáá±á¬ááºáá¶ááááºá
ááŒááºá¡ááºážááœá±ááá á¹á ááœááºá áá»áœááºá¯ááºááá¯á·ááẠáá áºááŸá áºááœá²á¡ááœááºáž á¡ááŒá áºá¡áá»ááºáá»á¬ážááᯠáá±á¬ááºááŸááá¬áá«áááºá ááœá±ááŒááºá¡ááºážááœááºážáá¶ááŸá¯áá¯áá±á«áºáá±á¬ áááºáá¬ááŒá áºáááºáá áºáá¯ááŸááá«áááºá á€á¡ááºááááºá¡ááŸááºááááºáááºááá¯á·ááŒá áºáááºááá¯áá±á¬áºááŒááá·áº á¡áá»áá¯ážá¡á á¬ážá¡ááœááºáá«ááŸááááºá ááá¯á·á¡ááœááºááŒá±á¬áá·áºá á€á¡áá»áá¯ážá¡á á¬ážááŒáá·áº á€ááŒá áºáááºááᯠáááºááá¯á·á¡áááºááŒá¯ááááºááᯠáá»áœááºá¯ááºááá¯á·á¡á¬áž ááŒá±á¬ááŒáá±á¬ ááŸááºáááºááá·áºá áá áºááŒáá·áº âá¡á¶á·ááœááºáá±á¬ááºážáá±á¬â ááá¯ááºáá»á¬ážááŸááááºá
ááœá²áá¯á¶á á¶áá¬ážááŸááºáž
Kafka ááœáẠáááºáá±á·áá»áºáá»á¬ážááᯠááá¬ážáááºá¡á±á¬ááºááŒá¯áá¯ááºááẠáááºáá¯á¶ážááá¯ááºáááºá
á¡ááá¯ááºážááá¯ááºážá¡á á®á¡á á¥áºáá»á¬ážááá¯áááºááŸá¯áááºá¡á¬ááá¶áá«áááºá
Kafka á¡ááœááºážááŸáá¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááᯠpartitions áá»á¬ážááœá²áá¬ážáááºá áá»áœááºá¯ááºááá¯á·ááẠá¡áá¬ááá¹áá¯áá»á¬ážááŸáá·áº áá²ááŸááºááŸá¯áá»á¬ážááᯠáá®ááá¯ááºážááœá²áá±áá»áááºááœáẠáááºážááẠá¡ááœááºá¡áá±ážááŒá®ážáááºááá¯ááºáá±á¬áºáááºáž áááºážááᯠá á¬ážáá¯á¶ážáááºááŸáá·áº á¡ááá¯ááºážá¡áá¬ááᯠáá¯á¶ážááŒááºáá¬ááœáẠá¡áá±ážááŒá®ážáá«áááºá
áá¯á¶ááŸááºá¡ááŒá±á¡áá±ááœáẠáááºááẠKafka ááœáẠá¡ááŒá±á¬ááºážá¡áá¬áá áºáá¯ááᯠáá±ážáá«á áá°áááºážá¡á¬ážááŒáá·áºá á¡ááá¯ááºážáá áºáá¯á¡á¬áž á¡áá¯á¶ážááŒá¯ááŒá®áž á€á¡ááŒá±á¬ááºážá¡áá¬ááŸá áááºáá±á·áá»áºáá»á¬ážá¡á¬ážáá¯á¶áž áááºážáá¶ááá¯á· áá±á¬ááºááœá¬ážáá«áááºá ááŒá®ážáá±á¬á· á á¬ážáá¯á¶ážáá°á á¡á²áá®á á¬ááœá±ááᯠáááºááá¯ááºáááºáááºá áááºáá±á·áá»áºáá»á¬ážááᯠááá°áá®áá±á¬á á¬ážáá¯á¶ážáá°ááŸá áºáŠážá០áááºááá¯ááºá á±ááẠááá¯á áá áºá¡á¬áž áá»á²á·ááœááºááẠááá¯á¡ááºáááºááá¯áá«á áá¯á·á á¥ááá¬á¡á¬ážááŒáá·áºá áááºááẠSMS ááá¯á·áá±áá«áá ááá¯á·áá±á¬áẠKafka á¡á¬áž áá±á¬ááºááẠpartition áá áºáá¯ááŒá¯áá¯ááºááẠKafka á áááºáá±á·áá»áºáá»á¬ážááᯠá¡ááá¯ááºážááŸá áºááá¯ááºážááœá²ááŒá®áž - á€áá±áá¬ááœáẠáá áºáááºá á€ááœáẠáá áºáááºááᯠááœá²ááœá¬ážáá«áááºá
Kafka á áá°ááá¯á·ááᯠáááºááá¯ááœá²ááá²á áááºáá±á·áá»áºáá áºáá¯á á®ááœáẠá á¬ááá¯ááºáá áºáᯠ(áá»áœááºá¯ááºááá¯á· JSON ááááºážáááºážáá¬ážááá·áº) ááŸáá·áº áá±á¬á·áá áºáá¯ááŸááááºá áááºááẠá€áá®ážááá¯á· hash áá¯ááºáá±á¬ááºáá»ááºááᯠáá°ážááœá²ááá¯ááºááŒá®ážá áááºáá±á·áá»áºááœáẠáááºááá·áºá¡ááá¯ááºážááœá²áááºááᯠáá¯á¶ážááŒááºáá±ážáááºááŒá áºáááºá
ááŒááºá¡ááºážááœá±ááá á¹á ááœááºá áááºážááẠá¡áá±ážááŒá®ážáááºá á¡áááºá áá»áœááºá¯ááºááá¯á·ááẠpartitions ááŸá áºáá¯ááá¯áá°áá«áá ááá¯á·áá±á¬ááºá¡ááŒáá¯ááºá á¬ážáá¯á¶ážáá°áá áºáŠážááẠáááááœá²áááá¯ááºáá® áá¯áááááŒá áºáááºááá¯áá¯ááºáá±á¬ááºááŒá®áž ááŒá¿áá¬ááŸááá¬ááá·áºá¡ááœáá·áºá¡áá±ážááŸááá«áááºá hash áá¯ááºáá±á¬ááºáá»ááºááẠáá°áá®áá±á¬áá±á¬á·áá«áá±á¬ áááºáá±á·áá»áºáá»á¬ážááᯠáá°áá®áá±á¬á¡áááºážááá·áºááœáẠá¡áá¯á¶ážáááºááŒá±á¬ááºáž áá±áá»á¬á á±áááºá
ááŒá áºáááºáá»á¬ážááŸáá·áº á¡áááá·áºáá»á¬áž
áá«á áá»áœááºáá±á¬áºááá¯á· ááŒá¯á¶ááœá±á·ááá²á· áá±á¬ááºáááºááŒá¿áá¬áá áºáá¯áá«á ááŒá áºáááºááẠá¡áá»áá¯á·áá±á¬ááŒá áºáááºáá áºáá¯ááŒá áºáááº- áá»áœááºá¯ááºááá¯á·ááẠáá áºáá±áá¬áá¬ááœáẠáá áºáá¯áá¯ááŒá áºáá²á·ááẠ(áá áºá á¯á¶áá áºáá¯_ááŒá áºááœá¬ážáá²á·áááº)á á¥ááá¬á áá á¹á ááºážáá áºáá¯ááᯠáááºáá»ááºááá¯ááºááẠááá¯á·ááá¯áẠááŒááºá¡ááºážááœá±ááŒá áºááœá¬ážáááºáᯠáá»áœááºá¯ááºááá¯á·ááŒá±á¬áá«áááºá á¡áááºá áá áºá á¯á¶áá áºáá±á¬ááºááẠá€ááŒá áºáááºáá»á¬ážááᯠáá¬ážáá±á¬ááºáá«áá "áá á¹á ááºážááᯠáááºáá»ááºááá¯ááºáááº" á¡áá ááŒááºá¡ááºážááœá±áá°áá áºááᯠáááºáá®ážáááºááŒá áºááŒá®ážá "ááŒááºá¡ááºážááœá±ááŒá áºááœá¬ážáááº" ááᯠá áá áºááá·áºááœááºážááŸá¯ááœáẠáá áºáá±áá¬áá¬ááŸá¬ áá±ážáá¬ážáááºááŒá áºáááºá
ááá¯á·áá±á¬áº á¡áá»á¬ážá¡á¬ážááŒáá·áºá áááºááẠá¡ááŒá áºá¡áá»ááºáá»á¬ážááᯠáá®ááá¯ááºážááœá²ááá·áºá¡áá« áááºážááá¯á·ááᯠá¡áá»ááºážááŸá®ážááá±ážáá»ááºáá« - áá áºá á¯á¶áá áºáŠážááẠáááºážááá¯á·ááᯠáááºáááºáá°áá±á¬á¡áá»ááºááᯠáááºá¡á¬ážááá¯ážáá«áááºá something_happened (item_cancedá refund_refunded) ááœáẠáá áºáá¯áá¯_should_be_done ááá¯áá±ážááẠááŒááºážáááºáá±á¬ááœá±ážáá±á¬ááºááŸá¯ááŸááá«áááºá á¥ááá¬á áá á¹á ááºážááŒááºááá¯á·ááẠá¡ááá·áºááŒá áºáá±áá«ááŒá®á
áá áºáááºááœááºá áááºážááẠá¡ááŒá áºá¡áá»ááºááᯠáááºááá¯á·á¡áá¯á¶ážááŒá¯áááºááᯠá¡ááŒá¶ááŒá¯áááºá á¡ááŒá¬ážáá áºáááºááœááºá áááºážááẠáá¬áááºááŒá áºáááºá¡áááºááŸáá·áº ááá°áá«á ááá¯á·á¡ááŒááºá áááºážááẠdo_something command ááá¯á· á€áá±áá¬á០ááá±ážáá«á áá«áá±ááá·áº áá áºá á¯á¶áá áºáá±á¬ááºá áá®á¡ááŒá áºá¡áá»ááºááᯠáááºááŒááá¯á· á¡á¬ááá¶áá»ááºáááŸááá«áá°ážá áááºáááºáá»áŸáẠá¡á±á¬ááºááŒááºá áœá¬áááºáá«á á¡á±á¬ááºá¡á±á¬ááºááŒááºááŒááºáááºááẠáá áºáá¯áá¯áá¯ááºááá¯ááºá áá áºáá¯áá¯áá±á¬á· á¡á±á¬ááºááŒááºááœá¬ážááŒá®á á¡ááŒá áºá¡áá»ááºáá áºáá¯ááẠáá áºáá¯áá¯ááŒá áºáá¬áá±á¬á¡áá«á áá¯á¶á·ááŒááºáá»ááºááá¯á¡ááºáá¬ááŒá®ážá áááºážááẠááŒá¿áá¬áá áºáá¯ááŒá áºáá¬áááºá
RabbitMQ ááŸá asynchronous áá²ááŸááºááŸá¯ááœááºá áááºááẠáááºáá±á·áá»áºááᯠáááºááá·áºá¡áá« http ááá¯á·ááœá¬ážáá«á á¡áááºážáá¯á¶áž áááºáá±á·áá»áºááᯠáááºáá¶áááŸáááŒá±á¬ááºáž ááá·áºááœáẠáá¯á¶á·ááŒááºááŸá¯áá
áºáá¯ááŸááááºá ááẠKafka ááá¯á· á
á¬áá±ážáá±á¬á¡áá«ááœáẠáááºááẠKafka ááá¯á· áá±ážáá²á·ááá·áº áááºáá±á·áá»áºáá
áºáᯠááŸááá±á¬áºáááºáž áááºážááᯠáááºáá²á·ááá¯á· áá¯ááºáá±á¬ááºáá²á·áááºááᯠáááºááááá«á
ááá¯á·ááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·áá¡ááŒá±á¡áá±ááœááºá áá»áœááºá¯ááºááá¯á·ááẠáá¯á¶á·ááŒááºááŸá¯ááŒá áºáááºáá áºáá¯ááᯠááááºáááºááŒá®áž á¡ááŒá áºá¡áá»ááºáá»á¬ážá áœá¬ááᯠáá±ážááá¯á·áá«áá ááá¯ááá¯á·áá±á¬á¡áá»áááºááŸáá·áº ááá¯áá²á·ááá¯á·áá±á¬á¡áá»áááºáá»áá¯ážááœáẠáá°áá®áá±á¬áá¯á¶á·ááŒááºááŸá¯ááŒá áºáááºáá»á¬áž áá±á¬ááºááŸááá¬ááá¯ááºá á±áááºá¡ááœáẠá á±á¬áá·áºááŒáá·áºááŸá¯ááᯠáááºááŸááºááááºááŒá áºáááºá áá®ááá¯áááŒá áºáá¬ááẠáá áºáá¯áá¯ááŸá¬ážááœá¬ážáá¯á¶ááááºá á¥ááá¬á¡á¬ážááŒáá·áºá áá»áœááºá¯ááºááá¯á·ááẠâitem_ready_to_refundâ á¡á á®á¡á ááºááᯠáá±ážááá¯á·áá«áá ááŒááºá¡ááºážááœá±ááᯠáááºáá®ážáááºááŒá áºááŒá®ážá ááœá±áá»á¬ážááᯠáá¯á¶ážá áœá²áá°áᶠááŒááºáá±ážáááºááŒá áºááŒá®ážá âmoney_refundedâ á¡á á®á¡á ááºááᯠáá»áœááºá¯ááºááá¯á·áᶠáá±ážááá¯á·áááºááŒá áºáá«áááºá áá«áá±ááá·áº áá«á ááá±áá»á¬áá²á·á¡ááœáẠá á±á¬áá·áºááŒáá·áºááá¯á· ááá¯áá«áááºá
áá áºáá¯áá¯á¶ážááá¯ááŒááºá·ááŒááºá·á á¯á¶á á¯á¶
á¡áá±á¬áºá¡ááẠáááá¬áááºááŸá¬ážáá²á· ááŒá¿áá¬áá áºáá¯ááŸááá«áááº- áá±á«ááºážá ááºáá áºáá¯ááá± áááºááá¯ááºáááºááŒá®áž ááá·áºááŸá¬ ááá¯ážááœá¬ážáá²á· áááºáá±á·áá»áºáá áºáá¯ááŸááá±ááẠá á¬ážáá¯á¶ážáá°á áá»ááœá¬ážááŸá¬ááŒá áºááŒá®áž áááºáá±á¬ááºáááºáááœá¬ážááá¯ááºáá±á¬á·áá«áá°ážá áááºážááá¯áááºá á á¬ážáá¯á¶ážáá°á¡á¬ážáá¯á¶ážááᯠáááºááá¯ááºáá«ááááºáááºáááºááŸá¯áááºá áá±á°áá±ážá
á¡á²áá«ááᯠáá«ááá¯á·áááááºá á¡á²áá«ááᯠá¡á¬ážááá¯ážáááºá áá«áá±á¬áẠááŒá áºááœá¬ážáá¬á Event-bus áááŸá¯áá±á¬áá·áºá០á¡ááŒá áºá¡áá»ááºááẠááŸááºáááºáá±á¬ááŒá±á¬áá·áº ááŒá áºáá²á·áááºá á¡ááŒá áºá¡áá»ááºááẠá¡ááá®áá±ážááŸááºážá á áºáá±ážáá°á ááŸá¯áá±á¬áá·áºá០ááŸááºáááºáá±á¬áºáááºáž PostgreSQL á ááŸá¯áá±á¬áá·áºá០áááŸááºáááºáá±á¬ááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·áá áá ẠMySQLá áááºááŸááºáááá¯ážáá¬ážáá±á¬ INT ááŒáá·áº á áá áºááœáẠPostgreSQL ááẠINT ááŒáá·áºáá¬ááŸááááºá áá°á·á¡ááœááºá¡á á¬ážá áááºážáááºážáá±ážááŒá®áž Id á á¡áááºáááŒá±áá°ážá Symfony ááẠáá»áœááºážáá»ááºááŒáá·áº áá±áá¯á¶ážááœá¬ážáá²á·áááºá áá»áœááºá¯ááºááá¯á·ááẠáááºážááᯠááŸá®ááá¯á¡á¬ážáá¬ážáá±á¬ááŒá±á¬áá·áº ááŒáœááºážáá»ááºá¡á¬áž áááºážáááá²á·ááŒá®áž á€ááŸáááºááŸááºážááŸá¯ááᯠáá»á°ážááœááºáá±á¬á·áááºááŒá áºáá±á¬áºáááºáž áááºáá±á·áá»áºááᯠáá¡á±á¬ááºááŒááºáá±á¬ááŒá±á¬áá·áº ááŒá¿áá¬áá±á¬ááºáá¬ááᯠááá¯ážááŒáŸáá·áºááá¯ááŒááºážáááŒá¯áá®ááœááºá á€ááá±á¬áá»ááºááŸá áá±á¬ááºáá¬áá»á¬ážááẠáá±áá¬áá±á·á áºáá²ááœááºáááºáž ááŸáááŒá®áž Symfony ááẠáá±áá¬áá±á·á áºááŸáá·áº áááºááœááºááŸá¯ááᯠááááºáá¬ážááŒá®ážááŒá áºááŒá®ážá áá¯áááááŒáœááºážáá»ááºááẠááŸáááºáá»áááºá¡ááœáá·áºá¡áá±ážáááŸááá² áá¯ááºáááºážá ááºáá áºáá¯áá¯á¶ážááᯠáááºáá áºááá¯ááºáá«áááºá
áááºáá±á¬ááºááŸá¯ááẠá¡áá»áááºá¡áááºááŒá¬ áááºááá·áºááœá¬ážááẠ- áá¶áá±á¬ááºážá áœá¬ááŒáá·áº Kafka ááŸáá·áº áááºáá±á·áá»áºáá»á¬áž áá»ááºááŸááá±áá±á¬ááŒá±á¬áá·áº áááºážááẠáááá¯ážááŸáá«á á¡áá¯ááºááŒááºáá¯ááºáá±á¬á¡áá« áááºážááá¯á·ááᯠááŒá®ážá¡á±á¬ááºáááºááá¯ááºáááºá á¡áááºááŒá±áááºá
Kafka ááẠáááááá¬áááºáá¬ááá¬ááŸáááá·áº áááá¬ážáá±á¬ á¡á±á¬á·ááºáááºáá áºáá¯ááᯠáááºááŸááºááá¯ááºá áœááºážááŸááááºá áá«áá±ááá·áº áá®ááá¯áá¯ááºááá¯á·á á á¬ážáá¯á¶ážáá°á¡á¬ážáá¯á¶ážááᯠáááºááá·áºááá¯á· ááá¯á¡ááºáá«ááẠ- áá»áœááºá¯ááºááá¯á·áááá á¹á ááœááºá á á¬ážáá¯á¶ážáá°áááŸáá á±áá±ážá ááŒááºáááºáá±áá¬áá»áá¬ážááŒááºážá¡ááœáẠáá®ážááŒá¬ážáá¯ááºááœáŸááºááŸá¯ááᯠááŒááºáááºáá«á ááá¯á·áá±á¬áẠKafka ááœáẠáááºááẠtooling ááŸáááá·áº offset ááá¯ááŒá±á¬ááºážááá¯ááºááŒá®áž áááºáá±á·áá»áºááẠááŒááºáááºážááœá¬ážáááºááŒá áºáááºá
áá±á¬ááºáááºáá°ážááŒá¬ážáá»áẠ- áá°ážáá°ááŸá¯ááŸááºáááºážááŸáá·áº rdkafka.so - áá»áœááºá¯ááºááá¯á·á ááá±á¬áá»ááºá á¡ááá¡áá»ááŸáá·áº áááºááá¯ááºáá«áááºá áá»áœááºá¯ááºááá¯á·ááẠPHP ááá¯á¡áá¯á¶ážááŒá¯ááŒá®áž PHP ááœáẠá ááºážáááºážá¡ááá¯ááºážá á á¬ááŒáá·áºááá¯ááºáá»á¬ážá¡á¬ážáá¯á¶ážááẠrdkafka.so repository ááŸáááá·áº Kafka ááŸáá·áº áááºááœááºááŒááŒá®ážá ááá¯á·áá±á¬áẠwrapper áá áºáá»áá¯ážáá»áá¯ážááŸááá«áááºá áá«ááœá±á áá»áœááºáá±á¬áºááá¯á·áá²á· ááá¯ááºáá±ážááá¯ááºáá¬á¡áááºá¡áá²ááœá±ááŒá áºáá±á¬ááºážááŒá áºááá¯ááºáá±ááá·áº áá»áœááºáá±á¬áºáááºáá°ážááŒá®ážáá¬ážá á¬áá áºáá¯ááºááᯠááŒááºáááºááŒáá·áºááá¯á·ááá¯áᬠááááºáááœááºááŸáá«áá°ážá áá±áá¯áá»á¡á¬ážááŒáá·áº áá±á¬á·ááºáá²ááºááŒá¿áá¬áá»á¬áž ááŸááá²á·áááºá
partitions áá»á¬ážááŸáá·áºá¡áá¯ááºáá¯ááºááŒááºážáá¡áá±ážá áááºá¡áá»ááºá¡áááºáá»á¬ážááá¯ááŒááºááœá¬ážáá±á¬á¡áá«áááºážááá¯á á¬ááœááºá á¬áááºážááœááºááŸááºáááºá áœá¬áá±ážáá¬ážáááºá á á¬ážáá¯á¶ážáá° >= áá±á«ááºážá ááºááœá²áá»á¬áž. áá«áá±ááá·áº áá®á¡ááŒá±á¬ááºážááᯠááŒáá¯ááºáá¬ááẠá¡áá»á¬ážááŒá®ážáá±á¬ááºáá»á០áááá²á·ááááºá á¡áááºá áááºááẠá¡ááá¯ááºážá¡áá¬ááŸáá·áº á á¬ážáá¯á¶ážáá°ááŸá áºáŠážááŸáááá¯áá«áá á¡áááºážáá¯á¶áž á¡ááá¯ááºážááŸá áºáᯠááá¯á¡ááºáááºá ááá¯ááá¯áááºááŸá¬ ááá·áºááœáẠáááºáá±á·áá»áºáá±á«ááºáž 20 á á¯áá±á¬ááºážáá¬ážááŒá®áž á¡áá áºáá áºáá¯ááŒá¯áá¯ááºáá«áá áááºáá±á·áá»áºá¡áá±á¡ááœááºááẠáááŒá¬áá® áá®áá»áŸáááºááá¯ááºáá«á ááá¯á·ááŒá±á¬áá·áºá á¡ááŒáá¯ááºá á¬ážáá¯á¶ážáá°ááŸá áºáŠážááŸááááºá áááºááẠpartitions áá»á¬ážááá¯ááá¯ááºááœááºáááºááá¯á¡ááºáááºá
á á±á¬áá·áºááŒáá·áºáá±á·áá¬ááŒááºáž
á¡á²áá«ááᯠá á±á¬áá·áºááŒáá·áºáá²á·áááºážáááºážá áááºááŸááá»ááºážáááºááŸá¯ááŸá¬ áááºááá¯ááŒá¿áá¬ááœá±ááŸááá±áá²ááá¯áᬠááá¯ááŸááºážáááºáááºáááºá
á¥ááá¬á¡á¬ážááŒáá·áºá áá±áá¬áá±á·á áºááŸá áá¯ááºáá¯ááºáááºáá»áŸááᯠáááŒá¬áá±ážáá®áá០áááºážááá¯á·á á¡ááŒá±á¡áá±ááᯠááŒá±á¬ááºážáá²ááá¯ááºáááºááᯠáá»áœááºá¯ááºááá¯á· ááœááºáá»ááºááŒá®áž áááºážááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážá¡áá±á«áº á¡ááŒá±áá¶á ááŒá áºáááºáá»á¬áž ááŒá áºáá±á«áºááá·áºááŒá®áž á€áá¶áá«ááºááᯠáá»áœááºá¯ááºááá¯á·á á á±á¬áá·áºááŒáá·áºáá±ážá áá áºááá¯á· áá±ážááá¯á·áá«áááºá ááá¯á·áá±á¬áẠKafka á០áá»áœááºá¯ááºááá¯á·ááẠáá¯ááá áá¶áá«ááºááᯠáááŸááááºá á¡ááŸááºáááẠááŒá áºáááºáááºáá»áŸ ááŸááºáááºážáááºáá²á·ááẠá áááºááŸá¬ážáááºááŸá¬ á€ááááºážááŸá áºáá¯á¶ážááŒá¬áž ááŒá¬ážáá¬ážáá»ááºááẠá¡ááŒá²áááºáž áá¯áááŒá áºááá·áºáááºá
ááá¯á·á¡ááŒááºá áá¯ááºáá¯ááºáá°áááºááá¯á·áá¯ááºáá±á¬ááºáá±áááºá ááœá²áá»á¬áž-áááºá
áºáá¬ážáá»á¬ážáááºáá¶áááŸáááŒááºážááŸááááŸáá ááŸáá·áºá
á¬ážáá¯á¶ážáá°áááºááá¯á·áá¯ááºáá±á¬ááºáá±áááºááŒá
áºá
á±áááºá
á±á¬áá·áºááŒáá·áºáááºááá¯á¡ááºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá á¡á±á¬ááºáá±á¬áºááŒáá«ááá¬ážáá»á¬ážááœáẠRefund Tool ááẠáá±á¬ááºážááœááºáá±áá±á¬áºáááºáž BOB ááœáẠááŒá¿áá¬á¡áá»áá¯á· (á¡ááŒá¬áá±á¬ááºá¡áááºá¡áá»áá»á¬áž) ááŸááá±áááºááŸá¬ áááºááŸá¬ážáááºá
á
á¬ážáá¯á¶ážáá°á¡á¯ááºá
ᯠáá±á¬ááºáá»áá¬ááᯠááŒá±á¬áá¬ážááŒá®ážáá¬ážáá«á á¡ááŒááºážáá»ááºážááŒá±á¬ááá»áŸáẠá€áááºááŸá¬ ááááºááá±ážáá±á¬ áááºáá±á·áá»áºá¡áá±á¡ááœááºááŒá
áºáááºá áá±áá°áá»á¡á¬ážááŒáá·áºá áá»áœááºá¯ááºááá¯á·á á
á¬ážáá¯á¶ážáá°áá»á¬ážááẠáá»ááºááŒááºá
áœá¬ á¡áá¯ááºáá¯ááºáá±á¬ááŒá±á¬áá·áº áá±á¬ááºáá»ááŒááºážááẠá¡áá»á¬ážá¡á¬ážááŒáá·áº 0 ááŒá
áºáá±á¬áºáááºáž áá
áºáá«áá
áºáá¶ááœáẠáá±ááá¯á¡ááœááºá¡ááááºááá¯á· áá±á¬ááºááŸáááá¯ááºáááºá Kafka ááẠá€á¡áá¬ááᯠáá±á¬ááºá¡ááœááºážá០áá¯ááºáá±á¬ááºááá¯ááºáá±á¬áºáááºáž áááºááẠá¡áá»áááºáá¬ááá
áºáᯠáááºááŸááºááẠááá¯á¡ááºáááºá
ááá±á¬áá»ááºáá
áºáá¯ááŸááááºá
á€áááºááŸá¬ API áá¯á¶á·ááŒááºááŸá¯áá¯á¶á
á¶ááŒá
áºáááºá á€ááœáẠgroup bob-live-fifaá partition refund.update.v1á status OK, lag 0 - áá±á¬ááºáá¯á¶ážáá±á¬ááºáá¯á¶áž offset á
áááºááá¯á·ááŒá
áºáááºá
á
á±á¬áá·áºááŒáá·áºáá±á·áá¬ááŒááºáž Update_at SLA (ááááºáá±áááº) ááŒá±á¬áá¬ážááŒá®ážáá¬ážá á¥ááá¬á¡á¬ážááŒáá·áºá áá¯ááºáá¯ááºááẠááŒááºáá¬ááẠá¡áááºááá·áºááŒá
áºáá±ááá·áº á¡ááŒá±á¡áá±ááá¯á· ááŒá±á¬ááºážáá²ááœá¬ážáá«áááºá áá»áœááºá¯ááºááá¯á·ááẠ5 áááá
áºá¡ááœááºáž á€á¡áá¬ááá¹áá¯á¡á¬áž ááŒááºá¡ááºážááŒááºážáááŒá¯áá«á (áá»áœááºá¯ááºááá¯á·ááẠááœá±áá±ážáá»á±ááŸá¯á
áá
áºáá»á¬ážááŸáááá·áº ááœá±ááŒááºá¡ááºážáááº)á áá
áºáá¯áá¯ááŸá¬ážááœá¬ážáááºááŸá¬ áá»áááºážáá±áá«áá²á áááºážááẠá¡áá±á¬ááºá¡áá¶á·á¡ááœáẠáá»áááºážáá±ááŒá
áºááŒá±á¬ááºáž áá»áœááºá¯ááºááá¯á· Cron ááᯠááá·áºááœááºážáá¬ážáá«áááºá ááá¯á·ááŒá±á¬áá·áºá áá»áœááºá¯ááºááá¯á·ááẠá€á¡áá¬áá»á¬ážááá¯áááºááá·áº Cron ááᯠááá¯ážááá¯ážááŸááºážááŸááºážáá°áᬠáááºážááá¯á·ááẠ0 áááºááŒá®ážáá«á ááááá±ážáá»ááºáá
áºáá¯áá±ážááá¯á·áááºá
á¡áá»ááºážáá»á¯ááºááŒá±á¬ááá»áŸáẠááœá²áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááá·áºá¡áá« á¡áááºááŒá±áááºá:
- á áá áºáá»á¬ážá áœá¬á¡ááœáẠá¡áá»ááºá¡áááºáá»á¬áž ááá¯á¡ááºáá«áááºá
- áá¯ááºáá±á¬ááºááŒááºážáááááºááẠá¡áá±ážáááŒá®ážáá«á
- ááœá²á¡áááºážá¡áá»ááºáž ááá¯á·ááá¯áẠá¡áá±ážá¡ááœáŸá¬ážááŒá áºáááºáá»á¬áž ááŸááá«áááºá
áá±á¬ááºážáá«ážááœáẠKafka ááœáẠá¡ááœááºáááá»áá±á¬á¡ááŒá±á¬ááºážá¡áá¬áá áºáá¯ááŸáááẠ- áá¯áááºááá±á¬áºáááºáž áááºážááŸáá·áºáááºá ááºá á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážá áœá¬ááᯠáá áºááŒáá¯ááºáááºáááºáž á¡ááŒá¶ááŒá¯ááá¯áá«áááºá
áááá áá±á¬ááºHighLoad++ áá»áœááºá¯ááºááá¯á·ááẠááá¯áááºáá¬áá¡áá á á±á¬áá·áºááááºááŒá áºááŒá®ážá á§ááŒá®áááœáẠá ááá·áºáá®áá¬á áááºáá¬ážááŸááºážááŸááááºááŒá áºááŒá®áž ááœááºáááœáẠNovosibirsk ááŸá ááŒáá·áºáá¬ážáá±á¬áá á¹á ááºážáá»á¬ážá¡ááŒá±á¬ááºáž ááœá±ážááœá±ážáááºááŒá áºáááºá
áá¯áááá¡áá±ááŸáá·áºá á¡á á®áááºáá¶á á¬áá±ážáá¬ážáá° Sergei Zaika ááẠáá»áœááºá¯ááºááá¯á·á á¡ááááá¬á á®áá¶ááá·áºááœá²ááŸá¯ááá¯ááºáᬠáá®áá¬áá¶á¡áá áºá á¡á á®á¡á ááºáá±á¬áºááá®á á¡ááœá²á·áááºááŒá áºáááºáKnowledgeConf . áá®áá¬áá¶ááẠáá áºáááºáᬠá§ááŒá®á áá áááºáá±á·ááœáẠáá»ááºážááááºááŒá áºáá±á¬áºáááºáž áááºážá á¡á á®á¡á ááºááŸá¬ á¡ááœááºááŒááºážáááºáááºá
áá±áááœááºááŒá áºáááá·áºáááºáPHP áá¯ááŸá¬áž ОRIT++ (DevOpsConf áá«áááºáááº) - ááá¯áá±áá¬ááœáẠááá·áºá¡ááŒá±á¬ááºážá¡áá¬ááᯠá¡ááŒá¶ááŒá¯ááá¯ááºáááºá ááá·áºá¡ááœá±á·á¡ááŒá¯á¶á¡ááŒá±á¬ááºáž ááŒá±á¬ááá¯áᬠááá·áºáá»ááºááŒá¬ážáá»á¬ážá¡ááŒá±á¬ááºáž ááá¯ááºááŒá¬ážááá¯ááºáá«áááºá
source: www.habr.com