# 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