Добавить в корзинуПозвонить
Найти в Дзене
Цифровая Переплавка

Биржа как журнал событий: почему стакан — это не таблица, а лог

Если отбросить привычные интерфейсы и красивые графики, современная биржа удивительно похожа не на финансовый институт, а на распределённую систему журналирования событий. Ордеры, отмены, сделки — всё это не «записи в таблице», а строгая последовательность событий, выстроенная в единую временную линию. Новость с quant.engineering отлично подсвечивает эту идею, но за ней скрывается куда более глубокий инженерный сдвиг. От хаоса сети к единой временной оси Физический мир не знает идеального порядка. Ордер из Лондона и ордер из Нью-Йорка могут прийти «одновременно», но на самом деле они прошли разные маршруты, сетевые стеки и задержки. Попытка полагаться только на timestamp — это иллюзия контроля: в распределённых системах нет общего «сейчас». Биржи решают эту проблему радикально — они не пытаются угадать порядок, они назначают его. Центральный элемент архитектуры — секвенсор — превращает конкурентный поток событий в линейный лог. Именно он создаёт тот самый «канон времени», с которым со
Оглавление

Если отбросить привычные интерфейсы и красивые графики, современная биржа удивительно похожа не на финансовый институт, а на распределённую систему журналирования событий. Ордеры, отмены, сделки — всё это не «записи в таблице», а строгая последовательность событий, выстроенная в единую временную линию. Новость с quant.engineering отлично подсвечивает эту идею, но за ней скрывается куда более глубокий инженерный сдвиг.

От хаоса сети к единой временной оси

Физический мир не знает идеального порядка. Ордер из Лондона и ордер из Нью-Йорка могут прийти «одновременно», но на самом деле они прошли разные маршруты, сетевые стеки и задержки. Попытка полагаться только на timestamp — это иллюзия контроля: в распределённых системах нет общего «сейчас».

Биржи решают эту проблему радикально — они не пытаются угадать порядок, они назначают его. Центральный элемент архитектуры — секвенсор — превращает конкурентный поток событий в линейный лог. Именно он создаёт тот самый «канон времени», с которым соглашаются все участники рынка.

Почему стакан — это про событийную модель данных (event sourcing)

Если смотреть инженерно, стакан заявок — это всего лишь материализованное представление лога. Истина хранится не в текущем состоянии, а в последовательности событий, которые к нему привели.

Это даёт мощные свойства:

  • 📜 Аудируемость — регулятор может воспроизвести рынок шаг за шагом
  • 🔁 Воспроизводимость — тот же лог всегда даёт тот же результат
  • 🧠 Простота модели — одно-единственное действие - добавление события в журнал

Отмена ордера ничего не «удаляет», она лишь добавляет новое событие. Сделка — тоже событие. Даже модификация - это операция, разложимая на удаление старого состояния и добавление нового. Стакан живёт в памяти, а лог — это правда.

Секвенсор: узкое место, без которого нельзя

Самое дорогое в этой архитектуре — детерминизм. Чтобы рынок был честным, все события обязаны пройти через одну логическую точку упорядочивания. Это убивает параллелизм, но иначе нельзя.

Здесь вступает в игру экстремальная оптимизация:

  • kernel bypass — пакеты обрабатываются напрямую в пользовательском пространстве, минуя сетевой стек операционной системы
  • 🧠 cache locality — данные удерживаются в кэше процессора (L1/L2), избегая медленных обращений к памяти
  • 🧩 NUMA pinning — потоки выполнения и используемая ими память закреплены за одним процессорным сокетом
  • 📦 zero-copy — данные передаются между компонентами без промежуточного копирования в памяти

По сути, биржа — это высокочастотный лог-процессор, где каждая наносекунда имеет цену в миллионы долларов оборота.

Почему согласованность в конечном итоге (eventual consistency) здесь запрещена

В обычных распределённых системах можно «немного подождать», пока реплики договорятся. В финансах это невозможно. Если два ордера по одной цене пришли почти одновременно, рынок должен сразу знать, кто первый. Любая временная рассинхронизация — это нарушение справедливости.

Поэтому торговые системы делают жёсткий выбор:

  • 🧱 Consistency (согласованность) — строгое, мгновенное упорядочивание событий и единое состояние для всех участников
  • 🌍 Partition tolerance (устойчивость к разделению сети) — система продолжает работать при сетевых сбоях и разрывах
  • 🚫 Availability (доступность) — вторична и может быть принесена в жертву ради согласованности

Если шлюз не видит секвенсор, он обязан отвергнуть ордера. Принять их «потом» — значит разрушить доверие к рынку.

Репликация без тормозов

Лог — источник истины, и он должен переживать сбои. Но ждать подтверждений от диска или всех реплик на горячем пути нельзя. Поэтому биржи используют асинхронные и конвейерные схемы репликации: секвенсор штампует события, механизм сопоставления ордеров (matching engine) работает дальше, а долговечность обеспечивается в фоне.

Ключевое требование одно:

  • 🔒 никаких пропусков
  • 🔁 никаких дубликатов
  • 🔀 никакой переупорядоченности

Если это нарушено — система останавливается. Лучше пауза, чем неверный рынок.

Личное мнение: биржи — эталон инженерной честности

Меня больше всего впечатляет не скорость, а философия. Биржи сознательно платят высокую цену за детерминизм, потому что понимают: справедливость важнее пропускной способности. Это редкий случай, когда архитектура напрямую кодирует этику системы.

И в этом смысле стакан — не финансовый объект, а инженерный артефакт. Он доказывает, что в предельно нагруженных распределённых системах лог — это не вспомогательный компонент, а фундамент.

Источники

🔗 Основная статья:
https://quant.engineering/exchange-order-book-distributed-logs.html

🔗 Проект quant.engineering — инженерия количественных финансов:
https://quant.engineering