ααΎα’αααΈα’αΆα ααααααααα»αα αα»αααααααΌα ααΆ Lamoda ααΆαα½αααΉαααααΎαααΆααααααΌα αα·αααααΆαααααααααΆααααααααΆααΆαααα·α ααΎααααΈααααΆααααααΌααα·ααΈααΆααααααααααααα½ααααΆαααααΆαα? ααΆαααΎαααΉαα α·αααα’αΆα ααΆαααΆααα»ααααααααααΆααΆαααααα»αα ααΈααΈαα·αααααααααα· αααααΆαα αααα·ααααααααααΆααα αααα»αα’αααααααααααααα·ααΈααΆααα’ααα
ααα»ααααααααα·αααΆααααααΆα’ααααα·αα’αΆα ααΉαααα’ααααΎα’ααααααααααααααααααααααα Sergey Zaika ααΉαααααΆααα’αααααΈα’αααΈαααα’ααααα·αααΆα’αΆα αααα ααααα·αααΎα’αααα’αα»αααα API ααααααα»ααααααααΉαααα·ααΆααααα ααΎ Kafka () ααΆααααΉαααΆαααΆααα·ααΆαα’αααΈααΆαααΆαααααα αΆααααα αα·αααΆαααααΎααα½αα±ααα αΆααα’αΆααααααααααα - ααΆααα·ααααααα·αα’αΆα ααααΎααΆααααααααΆααα½αααα

ααΆαααα·αααα α’ααααααααααΊααα’ααααΎαααααΆαααααααΆαααααΈααΆαααααα»ααααααα Sergey ααΆαααααΎα‘αΎααααα»ααααα·α
ααα·ααΆ ααααΆα 2018 αα
ααΎ HighLoad++α αααα·αααααααααΆαααααα Lamoda αααα»αααΆαααααΎααΆαααΆαα½α Kafka ααΆαααΆααααΆαα’αααααααΆαααα·ααα·α
ααΆααααΆαααΆααααααααααααα
ααΎααΆααα·ααΆααααααα ααΎααα·αααΆαααααΆα§ααΆα αααααααα’αα½α αααα’αααα’αΆα
αα·ααα½ααααααααααααα»ααααααααΆααααα·αααΌα
ααααΆααΆαα·α
αα
α αΎαα’ααααααα
ααααααα·ααΈ HighLoad++ ααΉαααααααααΆααΆααααααΎαααα·ααΆααΆααααα’αααααααααααΏααααα
α’αααΈααααΎαααΆα
Lamoda ααΊααΆαααα·ααΆααΆαα·αααααααα’αα‘α·α ααααΌαα·α αααααα½ααααααΆααααααααααααααΆααααααααααΆαααααα½α ααααΆααααααΉααααααΌα (αα·αααΆααΆααΆα αααΎα) ααααΌααΈααααΌααα ααααΆαααααα α αΎαα’αααΈαααΆααα’αααααααααΎαααΆαααΎαααααα·ααΈααααΆαααααα½αααααααΆα ααΆααα·ααΈααΆαααααααΌααΆααααΆαααα·α ααααΌ b2b αααα’αΆα ααααΎααααΆααααααΆααααααΆααααααααα α¬ααΆααα’αα α αΎαα ααααΉαααααααΆαααααΈαα’αααΈααα·ααααααααα½αααα ααΎαααΈαααααα Lamoda ααααα·ααααα·ααΆααα αααα»αααααααα ααα½αααΈαααα ααΈαα ααααααα»αααααΈα αΎαα’αααΈααααααααΆαααΊαα»αααααΆααααα·α ααααα½α αα ααΈαααα ααα»ααα αααα ααααΆααΆααα·ααΈα αααΎαααΆααα½ααααααα»αααΆαααααααα ααΆααααααααααΆααααααΆαα·αααααΈ αααααααΌαααααααΎαααΆαααΆααα·ααΈααααααΆα ααΆααα’αααααααααΎαααΆαααααααα½αααΈααααΆααααααΆαααα·αααααα½αααΆαααααΆααααααααΆαααααααααα·αα αααΆααααΆααα ααΆααααΆααααααααααααααΆααααααΆαααα½ααα»αααααΌαα ααααααΊααααΆαααΆααααααΆααααααΆααα ααΎαα α ααΆαααΆ BOB αααα»αααααΎααΆαααΆαα½αααΆαα
α§αααααααααααΆαααα·αααΆαα½α API ααααααα»ααααααααΉαααα·ααΆααα
ααΆαααβαααβαααα»αβαααβααααΉαααα·ααΆαααβααΊβααααΌαβααΆαβααβαα½α βα αΌαβαααΆαβααααΆαα α αΎαβααααα·α βαααβααΎαβααΉαβαααααβα±ααβααΆααααβαααα’α·αβα’αααΈβα’ααααααβααβααΆαααβαααα αααα»αααΉαα αΆααααααΎαααΆαα½αααΉαααα·αααααααΎααααααα α α·αααααΆααααααα·ααΈααΆααααα API ααααααα»ααααααααΉαααα·ααΆααααα αααα»α Kafka α

αα
αααα»αα αΆαααΆαα½α ααααααααΈααΎααΆααα»αααααααααα’αα·αα·αααααααααΆαα ααΆαααααααααααα αΆααααααΌαα±αααααα»ααα·α αααααΆαααα·ααααα·αααααΉαα’αα·αα·ααα αααααΊααΆααααΎαααΆαααααΈαα½αα ααΎααααααΆααααααααΆα ααααα·αααΎα
αΆαααΆα
α αα·ααααααααααΆααα
ααα»ααααααΆααααα‘αααααα·αααΆααααααΆαααΆααααα»αααααΆααααααΆαααΆαααααΆααααααΌαα αααΆαα α αΎαααΎαααααΌαα’αα»ααααααααΆααααααααΆαααΌα ααΆα ααααα‘αααααααΆααααΆα

ααΆαααΎαααΉαα
α·αααααααααΎαα
- α αααΆαα FZ-54 - αα·ααΆαα±ααααααΈ α αααΆαααααααΌαα±ααααΆαααΆααααα ααΆαα·ααΆαααααααααΆαα’αααΈααΆααααααα·ααααα·ααΆαααΌαα·αααααα» ααΆααΎααΆααΆααΆααααα‘αααααα·α α¬αααααΆαααα αααα»αααααααααααΈαα½α SLA αααα»αααααααααα»ααααΆαααΆααΈα ααΎαααΆαααα»αα αα»αααΆαα·αααααααα’αα‘α·α ααααΌαα·α α’αα»ααααααααα·ααααα·ααΆαααΆα αααΎαα ααΆααα αα ααααα αααααΆααααααΆ αααα½ααα»αααααΌαααααΈ (α αΎαααΌα ααααααααΆααααααααΈ) αα·αααΆααααααα’αα αααα»αααααααααααΆαααααααααΆααα’ααα
- BOB ααααα ααΊααΆαααααααααααααα»ααααααααα»αα αα»αααΎααααΈαααααΌαααααα BOB ββααΈαααα½ααα»αααααΌααα½αα ααα½αααααααα·ααααααΆααααΌα αα·αααΆαααααααααΆααααα»αααααΆαααΆααααΌαααααααΆα

ααααΆααααΆαααααααα αΆαααΈαααααααα Lamoda ααααΆαααα α₯α‘αΌαααααα½αααααΆαα
αααΎαααΆαα
αααΎαααΆα αααα»αααΆααΆαα·ααααααααΆααΈααααΌ 5-10 αα
αα»ααα·α monolith αα½αααΌα
. αα½αααΆαααα»αααΌαααΆααααΊα ααα»ααααααΎααααα»αααααΆααΆαααααΎα±αααα½αααΆααΌα
ααΆααα»α ααΈαααααααΆαααΆαααααααΆαααααααααααΆαααααΎαααΎααα
αααααΆαααΊαα½αα±ααααααΆα
- ααΎααα·αα’αΆα
α’αα»ααααΆαα±ααααΆααααΆααα
α»αααΆαααα ααΎαβααααΌαβααΆαβαααααβα±ααβαααβαα»αβααΆαβααααΆααβααααΌαβααΆααα’αα (αααα½α) α αΎαβαα·αβααΆβααΆαβααααΆααβααααΌαβααΆααβα’ααβα’αΆα
βααΉαβααααΆαβααΆβαα·αβα’αΆα
βααααΎβααΆαα
BOB ααααΆαααΆαααααΆααααααΌαααΆα αααΎααααααα ααααααααααΌααΆαα ααααααααααΉααααααΌα ααααααααααΌαααααΉαααα
ααΆααα αα ααααα BOB ααΊα
- ~ 150k αααααΆααααααΌα + ~ 100k αααααΆααααααΆαααααΎααααα;
- php7.2 + Zend 1 & Symfony Components 3;
- > 100 APIs & ~ 50 ααΆααα½ααααα αΌαααΆααααα ;
- 4 αααααααααααΆααααααα·ααααΆα’αΆααΈαααααααααΆαααααα½αα
ααΆαααΆαααααααΆα BOB ββααΆαααααααααα αα·αααΊα αΆαα ααα·ααΆαααααΌα αα·ααααα αΆαααααΆαααααααΆαααΊ ααααΆαααααΆααααΆααα’αΆα ααΆααααΆααΆααα’αααα αααα»αααααΆααααααα½αααααΆαααα ααΆααΌαα ααΆαα ααα»ααααΆα αααΎαααΎααααΈααααΎα±ααααΆααΆααααα
ααααΎαααΆααααα‘αα
ααααΌαααααααααααΈαααααΌαααΆαα αΌααα½ααα αααα»αααααΎαααΆα: BOB αα·αααΆαααΌααΆααα α₯α‘αΌαβααΈαβαααβααα βα‘αΎαβ:
- ααααΆααΆαααΎαααααααααΉααααααααΆαααα αΆααΆαα½αααΆαααΎαααα αα·αααΆαααααΆααααααααΆαα½αααααΆααααααΆααααα α
- α§αααααααααααΆαααα·α αααααΆααααααΆααΆαααΆαααααΆααααααΌαααααΈ ααΎααααΈαα»αα±αα BOB ββααΎαα‘αΎαα
α₯α‘αΌααααααααΎαααΆαααΎααα ααΌα ααα:

- BOB ααα½αααΆαααααΎαααααΆααααΆαααααααΆαααα·αα
- BOB αα·ααΆαα’αααΈα§αααααααααα·ααααααα
- α§αααααααααααΆααααααΆααααΆαααΌααΆααα "ααααααααααΆαααα·αα"
- ααΆαααΌααΆααααααααΆαααα·αα
- α§αααααααααααΆαααα·α αα·α BOB ααααΎααααΆαααααααααΆαααΆαααΆαα½αααααΆ ααΈααααααααααΆαααααααααα½αααααΆααααΈαααααΌαααΆαααΆα ααΎααα·αααΆαααα½α ααΆαααααα»αααΆαααααΌαααΆαααααα»ααα α§αααααααααααΆαααα·ααα αααααΆα BOB ααΆα UI αααΆαααΆααααααααΆααααααααα αα·αααΆααΌαα αα·ααααααααΆα αααΎαααααα·αα’αΆα αααααααΆααααΆαααΆααααα½αα α’αααααααΌαα’αααα»αααΎαα α’αΈααΈαα
- ααααΎβααΆαααΎααααβααΆααβαα βα αΎαα
ααΆααααααααΎαααΆααααααΎαααααααααα‘αΆααααα»αααααΉαααα·ααΆααααα ααΎ Kafka - event-bus αααα’αααΈαααΆαα αΆααααααΎαα α ααΊ αααααα ααΎαααΆαα ααα»α αααα½αααααΆααααΆααα (ααΆαααααααΈ)α

αα»ααααααααα·αα·ααα»ααα·ααααα·ααΊα
αααΆααααΆααα ααΎααααααΎαα‘αΆααααα»α αααααΆααααααΆα₯α‘αΌααααααααΆααααααΆααα’ααααΉαααα’ααααΎααΆα ααααα½αααααα½ααααααΆααα
ααΆ ααα»ααααααααΆαα
ααα»α
αα½αααααΆααααΆααααα
αααα»αααααααααα Kafka ααΉαααΆααααααΎαααΆαααΉααααα
ααΎα’αααΈαα ααΆ API ααααααα»ααααααααΉαααα·ααΆααα
α ααααΎαααααα’α αααααααα½ααααααΊαα αααα»ααααΆαααΆαααααα Martin Fowler (GOTO 2017) .
ααααααα’αααΈαααααΎαααΆαααααΎα
- αααα ααααΆαααααΆααααααΌαα’ααααΆαααΆααα’ααααΆαααα ααΆααααα»αααααΉαααα·ααΆααα. αααα½αα±ααααΆαααΌαααααΉααααα’αααααααΎααααΆαααααα αΆααα’αΆααααααααΆααα’ααα’αααΈααΆαααααΆααααααΌαααααΆαααΆααα ααΎαααααΆα ααΎααααααααααΉαααα·ααΆαααα’αααΈααΆαααααΆααααααΌαααααΆαααΆααα αααααααααα»ααααααΆα α αΎαα’αααααααΎααααΆαααααα αΆααα’αΆααααααααΎαααααΆααααααα’αΆαα’αααΈααααααααΆααααααα α‘αΎαααΈααΈαααα
- ααααΉαααα·ααΆααααααα»αααααΈαααααΊααΆααΆαααΌαααααΉα (ααΆαβααΌαβααααΉα) αααα’αααΈαα½αααΆαααααΆααααααΌααα ααααααααΆαα½αα α§ααΆα ααα ααααΆαααΆαααΆααααααΆαα·αααΆαααααΆααααααΌαα α’αααααααΎααααΆαααααα αΆααα’αΆααααααααΎαα·αααααααα½αα ααα½ααααα’αααΆαα½αααΉαααΆαααααΆααααααΌαααααΆαααΆαααααα·αααααΌαααΆααα½ααααα αΌααααα»αααΆαααΌαααααΉαααα α’αΆα αααααααααααΆαααΆαααααααΆααααααα½αα―αααΆαα
- αααααΎαα’αα·ααααΆααΊαααααααααΉαααα·ααΆααααααααα, ααΆαααααααααααα αααα»αααααΉαααα·ααΆααααααααΆαααααααΆαααΆααα’αααααα αΆαααΆα ααααααΆααααααΎαααΆαα ααΎααΆααΆαααααΈααΆ αα·αααααΆαααΆαα’αααΈαααααΆααΆααα ααααααααα·ααααααααΆαααααΆααααααΌαα αα αααα½ααααα½ααααααΊααααααΆα αα·αα ααα½αααααααΆααααα’αααα’αΆα ααΆαααααααΆααααααΆαα»αα
ααΆααααααα½αααααΆαααΎαααααΎαααΆαα§αααααααααααΆαααα·α ααΎαααΆαααααΎαααααΎαααΈααΈα ααααΎαααΆαααααΉαααα·ααΆαααααααΆααααααα αααααααΆαα·αα αΆαααΆα αααΆαααααααααΆααααα’α·α ααΌααα½αααΆααααΆααα»αααααΆααααααΆααΈαααΌ αααααααΉαααα·ααΆαααααααΈααΈαα½αααααααΎαααΆααααααΆααα±ααααΆαα αααΆααααΆαα ααα½αααΆαααααΎααΈα’αααααααΎααααΆααα
ααααΆα§αααααααααααΆαααα·αα αα·αααΆααααα»αααΌα αααα 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 ααΆαααααΎαα’αααΈαααα αΆααα ααααΆααααααΌαααααΆαααΆααααααα½ααα ααααΆααΆαααΎααααααΆαααααΎαα’αααΈαααα αΆααα αα·αααΆαα ααααΌααααααΆααααααα

ααΎαααΆααααααααααααΎαααααΆααααααΌαααααΉαααααα½αααααα½ααααααΉαααΌαααααΉααααα’αα·αα·ααα’αααΈααααααΆαααΆααααααΉαααΆααααααΆαα·α/ααΆααααα‘αααααα·αααααααΆααα α₯α‘αΌααααααΆαααα½ααα»αααααΌααααααααΌαααΆαααΈαααΆαααΆααααΆαααααααααα ααΆααΉααααααααααΆαααααααΆαααα½αααΎααααα»αααΆαααααααααααΆααααααΌαααααΉαααΎααααΈα
αΆααααααααααΆαααΆαααααααααΈ Kafka α αΎαααααΎααααα
ααΆ (αα·ααα·αααΆαααΌαααααΉαααΆααααααα
αααα»ααααααααααααααααα)α ααααΆαααΆαααααΆααααααΌααααααααΆααααααΈααΉαααααΌαααΆαααΆαααΆαα
αααα»ααα·αααααα
ααααααΆααααΆαααααααααααααΆαααΆαααααΆααΆα - αα·αααΆ "αα ααααΆααααα αΌαααΆα" αααααΆαααα’αααααΆα α αΎααα·αααΆαααααα ααα»ααααα’αααααααΆααα α»ααααΆαααΆαααααα Lamoda ααΆαααΆααααααΆααα·ααΆααα·ααααααααααααααΌααα·ααααααααΈαααααααα α αΎαααΆααααΆα αΌααα αααα»ααααααααααα’αΆα ααααΎα‘αΎααα·αααΆαααΆαααααααΆααα’αΆααΈααααα αα·ααααααΆααααααααααααααΆαααα Kafka α’αα»ααααΆαα±ααα’ααααααααα±αααα½αααααΌααα·ααααααααΆα αααΎααααΆαααΆαααα αα αα·ααααααΆααα αΌαααααααΆααααα±ααααΆααααααα
αααααα ααα»α αααα
ααΆααα·αααΆαααααααΆααααΈα’αΆαααΌα αααα»α RabbitMQ ααα αα ααααααααααΉαααα·ααΆααααα½αααΆαααααααΆααααααααααΆαααααααΆααααααΎαααΆα ααΎαααΆααααααααα·ααααΆαααααΆααααααΌαααααΈαα ααααααααα» α αΎαααααα·αααΎα ααααΆα αααααααΆααααα»αααΆαα’αα»ααααααΆαααααΆααααααΌαααΆαααααα
ααααααααααΆααααα»ααααααααα ααα»α ααααα’αΆααααααα ααΎα’αΆααααααααΈααααααΆαααααααα ααΆαααααααΆαααααα Kafka α’αα»ααααΆαα±ααα’ααααααααααΆαααααααααααααααααΎαααααααΆαααα»α αα·αααα·ααΆααα·ααααααα αααααΆαααααααΆααααααααΉαααα’ααααααΆαα ααΆααΆαααΆααααααΆαααααα’αααααααΎααααΆααααΆααα’ααααΆααααααααΆααΎααααΈα’αΆαααααααΆααα»ααααααΆααΆαα ααΌααααΈαααααα»αααααΈααααα·αα’αΆα ααααΎαααΆαααΆααααα»αααααααααααΈαααααα ααΆααααααΆααΆα’αΆα ααααΎαα ααΆαααΎααααΈαααααΆαα»ααα·αααααααααααΆαα α―αααΆααααααααααα·αααΆαααααααααΆαααααααΆααααΆαααΆααααα

αααααΆαααα ααΆααααααΆααα‘αΎααα·αααααα·α
ααα―αααΆααααααΆααα’αααααααα·ααααΆαααΆαα½α Kafka (ααΌαααΆαααααααΈα―αααΆαααααα)
AMQP ααΆααα½αα ααΎααααααααΆααα αα½ααααααΆααα’αα·αα·ααα ααΆααααααΆ αα½ααα½αααααΌαααΆαααααΎαααΆαααααααααααααα½ααααααΆααααααα·ααααΆα’αΆααΈαααααααΌα ααααΆα ααααα·αααΎα’αααααααΌαααΆαααΌαααααΉααααααααααααααΆα αααΎα α’αααα’αΆα αααααααααααα·ααΈα±ααααααααα αα½αααΆα αααΎα α¬ααααααα ααΆααααααααααΆαααααΆααααααΌαααΆαα½αααΉαααααααΆα fanout αααααααΌααα½αααΆααααααα½αα―αα
Kafka ααΆαα’ααΌααΈααααααααααΆ αααααΆααααααα’ααααααααααΆα ααα»αααααα½ααααα·αααΆαααααααΆααααΈα’αΆαα ααΆαααααΆαααΎα αα αααα’αααααααΆαααα Kafka α’αααααα½αααΆαααΆαααΆααα’αα α αΎαααΆααααααΎαααΎααααΈαααααΆαα»ααααααααααα’αααα αΆαα ααα αααααΊα’αααα’αΆαααΆαααααΆααααααα α’ααααααα ααααΆαα·ααααααΆααααΆαααΆααΆαα’αΆααα ααα»αααααααααΆαα»αααααααααΆααααααααααΆααααα’αααα’αΆα ααααααΆαα’αΆαααΆαα ααααααααΆαααααα’αααααΆαααΌααΆααααααΌαααΆαααα α ααΆ α’α»α αααα·α α αΎαααααααΆαααααΌαααΆαααΌααΆααααααΉαα
ααΌα ααααα αΎααααααα·ααααΆαααααααααΆα’αΆα ααααΌαααΆαα’αα»ααααα α§ααΆα ααα ααΎαααΆα BOB αααα»α 4 ααααΈαααααΆααααααααααααααααααΆ - Lamoda αααα·ααα αααα»ααααααααα»αααααΈ ααΆα αααΆααααααΆα α’αα»αααααα ααα‘αΆαα»αααα αααααΆααα½αααΆααααΌαααΆαααΆαααααααΆααααα‘ααααΈααααΆ αα½αααααΆαααΆαααααααα ααΆαααααααααα»αααααΆααααα·α ααααα½α αα·ααααααα·ααααΆα’αΆααΈαααααααααΆαααααα½ααααααα½αααα ααΎαβαααα αΆαβαααα»αβααΆαβαααβααΆβαααα βαα βααααααβααΆα α’αααααααΎααααΆαα BOB ααΈαα½αααα αααα»αααααααααΈαα½ααα’αΆαααΆαα½α groupId αααααααααΆ α αΎαααααα·αααΎααΆαααααα·αα’αα»ααααα αααααα½ααααα αα½αααααααααΆ αααααΊα§α ααΌααΆααααααΆαα α’α»α αααα·α +1 α ααααα·αααΎαααααΆαααααΌα ααααΆααααΌαααΆαα’αΆααααααααΆααααααΌααΆααααααααΎα αααααΆααααΎααΌα ααααααΆαα½ααααα»αααΆα ααααα‘αα α αΎαααΌα ααααα’α»α αααα·ααα·ααααααααααααΆααα
αααααΌαααΆαααααΉαααα·ααΆαααα
- ααΆααααααααααα·ααααααα αααα»αβα ααβα±ααβααααΉαααα·ααΆαααβαααβααΆαβαα·ααααααβαααααααααΆααβααΎααααΈβα±ααβααΆβα’αΆα βααααΎαααΆαβααΆαα
- αα»α αα·αααΆαα ααΎααααααααα α±αα Events-bus ααΌαααΆααααααααααΆααααΆααααΉαααα·ααΆαααααΊαααα α αΎαααΆα’αΆα ααααΎαααΆαααΆααΆαα
- ααααΆααααΊααααΆααα αααα»αβααααΈβαααα‘ααβααβαα·α ααΎαβααααΌαβαααααβα²ααβααααΎβααΆαβααΆαα½αβααΉαβαααααααα·ααΆαααααα ααΆαα½αααΉαααΆαααΌαααααΉα ααΆααααααΆαα·ααα·αααααΆαααα ααααα·αααΎαα½αααΆααΆααΆαααΌαααααΉαααΌα ααααΆ α’ααΈαααααΉαααΌα ααααΆ ααααα·ααα·αααΈααΆααααααΆαα·αααΆαα½αααΆαααααααα»αα αα αααα»αααααΈααααΆαααααα·ααααα·α ααΆαααααΎαααΆαα αααΆααααΆαα ααααα·αααΎααΎαααααΆααααααΌαααΆααααααΆαα·α ααΆαααΎααααααΉαααΎαα‘αΎα ααΆαααααα·αααααΉααα·αααααΌαααΆααααααΎα α¬ααααΎαααΆααα ααΎαααΉααααα αααααα»αααααΆαααΆααααααα
- ααΆαααΆααααΆααα ααΎαααΆαα αΆααα½α α αΎαα₯α‘αΌααααααΎααααααΎαααααΉαααα·ααΆααααααα½αα±αα API α ααΎαααααΌαααΆααααααααΆαααΎααααΈαααααΌαααααααΆααααΆαααΆαααα αα αα·ααααα’αααΈααααΉαααα·ααΆαααααααΈα αα·αααΆαααααΆααααααΌααα ααΆααααααΆααααααααααΎααααααΆαααααΆααα αααααααΌαααΆααααααα ααΆααααααΆααααααΆααααΌαα αα αααα»αααααΆαα git ααΆα ααααα‘αα αα·ααααΆαααΈααααααΎαααΌαα ααΌα αααα α’αα·αα·αα αα·ααααΆαααΈααααα αααα»αααααΆααααααααααααααΆααααΌαααΆααααααααααα½αα
Kafka αα Lamoda
ααΎαααΆαααΆαααα‘αΎα Kafka α ααα½αααΈα
- αααααα ααα»;
- R&D;
- ααααΉαααα·ααΆααα - α‘αΆααααα»αα
αααααααααΎααα·ααΆαααα ααα»α α α»ααααααααα»αααααα αα α―ααααΉαααα·ααΆααα - αααααααααα»αααΎααα·αααΆαααΆαααα‘αΎαααααααΆααααΆαα - αααα½ααααααΆα 3 (αααΆαααΈααα) α αΎαααΆααα 27 αααααΆαααααα»αααααα ααΆααααα½ααα½ααααααΆαααααΊααΆααααΎαααΆααα½αα ααα»ααααβαααβααΆβα ααα»α βααΌα βαα½α α αΎαβααΎαβααΉαβαααβααΆβα₯α‘αΌαβαααα

ααΆαααΎααΊααΆααααΆα αα 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 ααα·αααααα’ααααΆαααΆα αΆαααΆα α α αΎααααααΆαααα αΆα

αα
αααα»αααΆαααααΆααααααΌαα’ααααΆααα
αααα»α 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 ααΎαααα½αααΆααααααΈααΈα ααΎααααΉαααα·ααΆαααααΆα αααΎαααααΌαααΆααααααααΆαααΆααα·αααααΆααα ααΆααααααα ααΆααα»αααααΆαααΆααααααΆααααΈαααααα½αααααΆααΌαααααΆαα·α αα α

ααΎαααΈαααααα α’αααααααΌαααΆαααΆαααΈαααααααα’αααααα·ααααα»αααααΎ ααΆααΎααααΉαααα·ααΆααα-bus ααΆαααα½αααΆα αα·ααααααααα’αααααααΎααααΆαααααα»αααααΎα α§ααΆα ααα αααα»αααΆααΆαααΆαααααα α§αααααααααα·αααααΆαααααα»αααααΎαααΆαααα’ ααα»αααα BOB ααΆααααα αΆαα½αα
ααα½α (ααααΌααααααα)α

αααα»αααΆααα·ααΆαα’αααΈααΆαααΊααααΆααααααα»αα’αααααααΎααααΆαααα½α
α αΎαα αα·ααΆαααααααααα αααααΊααΆα
ααα½αααΆαααααα·αααΆααα’αΆαα ααΆααΌαα
α’αααααααΎααααΆααααααααΎαααααΎααΆααααΆαααΆαααα αα ααΌα
ααααααΆαααΊααααΆαααΆααααααΆααΊ 0 ααα»αααααααααααααΆα’αΆα
ααΆαααααα·αααααααααα»αααααααααααΈα Kafka α’αΆα
ααααΎααΆα
ααααΈαααα’αα ααα»ααααα’αααααααΌααααααα
ααααααααααΆααααΆαααα½αα
ααΆααααααααα½αα αααααΉααααααα±ααα’αααααΌαααααααΆαααααααα’αααΈ Kafka α ααΆααααΆααααααααΎ API αααα»αα’αααααααΎααααΆαα ααΎααααΈαααααααααΆαααΆαααααααααααααα»αααααααα»αααααΎα ααααααααΈααΎααΆαααααααα αα·ααααΆααα ααΆαααΆααααααΆααα½α α αΎαα’αααα’αΆα ααααΎαααΆα’αααααααΎααααΆααααααα’ααααα·αα’αΆα ααααααααΉαααααΏαααααΆαααα·αααΆαααααα αα½ααααα·αααΆααααααααΆααΎααααΈαααααααααΆααα’αααΈαααααααΌαααΆαααααααααααα ααααααααααααα·αααΆααααΆααα αα·αααΆααααα½αααααΎα

αααααΊααΆα’αααΈαααααΆαααααΎααααααα API ααΎααα
ααΌα
α αααααΊααΆαααα»α bob-live-fifa, partition refund.update.v1, ααααΆαααΆα OK, lag 0 - α’α»α αααα·αα
α»ααααααα
α»ααααααααΌα
ααΆααΆααΎαα

ααΆααααα½ααα·αα·ααα updated_at SLA (ααΆααααΆαα) αααα»αααΆαααΎαα‘αΎααα½α
α αΎαα α§ααΆα ααα ααα·αααααΆαααααΌααα
ααΆααααΆαααΆααααααΆαα½α
ααΆαααααααΆααααΆααααα‘αααααα·αα ααΎαααα‘αΎα Cron ααααα·ααΆαααΆααααα·αααΎαααα»ααααααα 5 ααΆααΈααααα»ααααα·αααΆαααααααΆαααα·ααα (ααΎαααααααααααΆαααα·αααΆααααααααααααααΌααΆαααααΆαααΆαααα αα) αααααααΆααααΆααΆαα’αααΈαα½ααα»αααααααααΈ α αΎαααααα·αααΆααααΈαααααΆααααΆαααΆααααα ααΌα
ααααα αΎα ααΎαααααΆαααααα Cron αααα’αΆαααΏααααααα α αΎαααααα·αααΎααΆααααΆα 0 αααααΆααΉαααααΎααΆαααΌαααααΉαα
ααΎααααΈααααααααΆαααααΎααααΆααααααΉαααα·ααΆαααααΊααΆααααα½ααα ααα:
- ααααααΆαααΊααααΌαααΆααααααααααααααΆα αααΎα;
- ααααααααααααΎαααΆαααΊαα·αααααΆαα;
- ααΆαααααΉαααα·ααΆααααα·α αα½α α¬ααααΉαααα·ααΆαααααΌα ααΆα α
ααΆα αΆααααΌα ααΆααΆα’αααααααΆααααααΆαααααΆααααΆαααα½α - API α’ααααΆααα ααΎ Kafka ααα»ααααααΆααααααΉαααΆ αααα»αα ααααααΆαααΏαααΆα αααΎααααα»αααααααα½αα
ααΈαα½ααααααΆαα ααΎαααααΌααααα αΆααα αΌαααααααα·α ααα·ααΆ α αΎααα αααα»αααααααΆααΉαααΆαααααααΆααααααΊαααΊα α αΎααα αααα·αα»ααΆ ααΎαααΉααα·ααΆαα’αααΈααΆααααα»αααααααα Novosibirskα
ααΈααΈα α’ααααα·αααααααΆαααΆαααααΊααα Sergei Zaika ααΆαααΆαα·αααααααααααΆαα·ααΆααααααα·ααΈααααααα·ααΈαααααΈααααααΎαααααΈααΈααΆααααααααααα ααααααΉαα . ααααα·αα·ααααααΊααΆααααααααα½αααααααΉααααααααΉααααα αα ααααααΈ 26 ααααααΆ ααα»αααααααααα·ααΈααααααΆααΆααααΆαααααΆααα
α αΎαααΆααΉαααΆααα αααα»αααα§αααΆ ΠΈ (ααΆαα½α DevOpsConf αα½ααααα αΌα) - α’αααααα’αΆα ααααΎαααααΆαααααααα’ααααα ααΈααα αα·ααΆαα’αααΈαααα·αααααααααα’ααα αα·αααα’αΌαααα’ααα’αααΈαααααααααααααα’αααα
ααααα: www.habr.com
