주문 접수 지연만 낮추면 거래소가 완성되는 것이 아닙니다. 신규·체결·취소의 순서를 하나로 확정하고 같은 로그로 order book을 재생할 수 있어야 합니다.
운영자 직접 작성·기술 검토·최종 검토 2026.08.29
개념 이해요구사항장애 대응진도 저장
↔30초 핵심 요약
종목 owner의 fenced epoch와 durable sequencer가 engine sequence를 확정하고 단일 writer가 price-time을 적용합니다. failover와 feed gap은 snapshot·sequence·book hash로 같은 상태까지 복구합니다.
ORDERINGsymbol → epoch → engine seq
PRIORITYbest price → FIFO
RECOVERYsnapshot + deterministic replay
DESIGN DECISION · 설계 판단
신규·체결·취소의 공정한 순서를 어떻게 기록하고 재생할 것인가?
예시 피크 메시지약 833,000 msgs/s
계산 결과
예시 shard 처리량200,000 msgs/s
설계 가정
예시 replay 목표15분 이내
설계 가정
최종 선택
fenced symbol owner + durable sequencer + price-time single writer
종목 owner epoch를 fencing하고 sequencer가 log-before-apply engine sequence를 부여합니다. 단일 writer가 price-time으로 체결하며 execution과 public feed는 같은 engine event에서 sequence를 가진 파생물로 만듭니다.
선택 이유
cancel-match race를 client 시각이 아닌 하나의 결정 순서로 설명할 수 있습니다.
같은 durable log에서 order book과 execution을 결정적으로 재생할 수 있습니다.
feed gap과 active failover에 snapshot·sequence 검증 근거가 생깁니다.
포기한 대안
한 종목 order book을 여러 writer가 동시에 갱신
cross-price 경쟁과 cancel-match 순서가 분산되어 price-time 공정성과 장애 후 동일 replay를 증명하기 어렵습니다.
hot symbol core/NIC, durable log/snapshot, market-data egress, surveillance, hot standby와 drill을 합산합니다.
peak_skew × recovery_headroom
면접 모드 · 추가 질문06:00
“hot symbol cancel burst 중 active process가 NIC disconnect 되었습니다. standby promotion 전에 어떤 sequence·log durability·fence·book hash·market-data snapshot을 확인해야 두 order book이 다른 체결을 만들지 않는다고 설명하시겠습니까?”
종목 ownership을 fenced epoch로 정하고 sequencer가 log-before-apply 순서를 부여한다.
단일 writer order book이 integer tick과 FIFO로 신규·체결·취소를 결정한다.
execution report와 public feed는 engine event에서 fan-out하되 각각의 sequence를 추적한다.
standby는 fence·durable sequence·book hash·feed snapshot을 검증한 뒤 승격한다. 이번 선택: 종목 shard 단일 writer와 durable sequencer로 price-time 순서를 확정하고 모든 파생 feed를 재생 가능하게 만든다. 깨지는 신호: 같은 log replay에서 book hash가 달라지거나 feed gap 뒤 snapshot sequence가 이어지지 않는다. 다음 검증: hot symbol cancel burst와 active NIC 단절을 주입해 double-active 0, replay hash 일치, resume 시간을 측정한다.
INTERVIEW ↔ PRACTICE · 면접과 실무의 차이
price-time 순서를 설명하고 feed gap·failover를 운영하기
INTERVIEW · 면접
gateway 도착보다 engine sequence가 결과를 결정한다고 답합니다.
fenced epoch·sequencer·log-before-apply를 설명합니다.
integer tick·FIFO와 cancel-match 순서를 말합니다.
execution report와 public feed sequence를 구분합니다.
PRACTICE · 실무
cancel burst와 NIC 단절에서 같은 log가 같은 book을 만드는지 확인합니다.