---
# System prepended metadata

title: l2 . orderbook v2

---

# l2 . orderbook v2

## Постановка

Если грубо - биржа это два сервиса api <-> trading engine
оба сервиса связаны по сети(хотя мы сейчас рассматриваем возможность обвязки их через IPC в рамках одной инстанции, но кмк путь не очень)

Api слой штука горизонтально масштабируемая, а вот мэтчинг энжина нет. 

Связь сервисов осущевствляется через UDP-подобный транспорт Aeron.

У меня есть энжина которая держит 17M тпс. Но это в вакуме - без сети итп итд. Мне нужно написать ее версию, которая впишется в наш протокол и нашу очередь. 10M tps можно считать успехом.

Понятно что в таких системах нужно комплексно профилировать сервисы учавствующие в транспорте сообщений до энжины - тут нужен инструмент профилирования(трассировки). Их строят на eBPF + elk - его нужно тоже построить. Если эта штука сможет работать не только на энжине но и на любом другом +100 к карме:) . 

Если нужна виртуалка или elk - у нас есть и облака и поднтый elk.

такие тулзовины есть в энтерпрайзе - но по поняттным причинам нам не доступны:
https://www.dynatrace.com
https://newrelic.com
https://www.appdynamics.com

Там куча всего - меня именно apm интересует. чтоб было понятно где узкое место в пропускной способности системы и как тюнить ее латенси. Если быстро сможешь засетапить ее(до конца месяца) - то сможем ее потестить на продакшене. 


## BPF - всему голова
особо сильно тут упарывается нетфликс - рекомендую изучить их тех блог и гитхаб.

https://habr.com/ru/company/selectel/blog/458592/
https://habr.com/ru/company/otus/blog/436528/
https://habr.com/ru/post/435142/
https://github.com/iovisor/bcc
https://www.tecmint.com/bcc-best-linux-performance-monitoring-tools/
http://www.brendangregg.com/Slides/BSidesSF2017_BPF_security_monitoring.pdf
https://www.slideshare.net/brendangregg/linux-4x-tracing-performance-analysis-with-bccbpf

## engine

TBA

## aeron

TBA


