예측 시장 WebSocket API: 안전하게 라이브 북 재구성
소켓 연결은 쉽습니다. 시드, 델타, 재연결 및 장소별 속주를 통해 정확한 북을 유지하는 것이 실제 엔지니어링 작업입니다.
예측 시장 WebSocket 클라이언트는 완전한 초기 북, 결정론적 업데이트 순서, 소스 및 수신 타임스탬프, 하트비트 처리 및 모든 갭 후 복구 경로가 필요합니다. Polymarket는 이벤트 기반 CLOB 업데이트에서 캡처할 수 있으며, Kalshi 데이터는 다른 장소 메커니즘을 통해 도착할 수 있습니다. 정규화된 다운스트림 프레임은 소스 차이를 가장하지 않고 이러한 소스 차이를 유지할 때만 유용합니다.
최소한의 정확한 상태 머신
- 구독하기 전에 안정적인 시장 및 결과 식별자를 확인하십시오.
- 증분 변경을 적용하기 전에 완전한 북 시드를 로드하거나 받으십시오.
- 문서화된 소스 순서로 업데이트를 적용하고 오래된 상태를 거부하십시오.
- 모든 연결에 대해 하트비트 또는 마지막 메시지 시간을 독립적으로 추적하십시오.
- 시퀀스 갭 또는 불확실한 재연결이 발생하면 로컬 북을 버리고 다시 시드하십시오.
- 다운스트림에서 소스 시간, 수신 시간 및 명확한 스냅샷 대 델타 플래그를 게시하십시오.
스냅샷과 델타는 상호 교환할 수 없습니다.
스냅샷은 상태를 대체하고 델타는 상태를 변경합니다. 하나를 다른 것으로 취급하면 삭제된 레벨을 유지하거나 변경되지 않은 크기를 삭제하는 것처럼 보이는 북을 생성할 수 있습니다. 레벨 삽입, 크기 대체, 삭제 및 교차 북 거부에 대한 명시적 테스트를 작성하십시오.
다운스트림 소비자는 완전한 사다리가 수신되었는지 추측할 필요가 없습니다. 단순성이 추가 대역폭보다 가치가 있는 경우 메시지 유형을 포함하거나 정규화된 완전한 북 프레임을 제공하십시오.
장소 인식 정규화
DepthFeed는 Polymarket를 CLOB 스트림에서 캡처하고 정규화된 관찰 사항을 기록합니다. Kalshi 스포츠 및 암호화폐 북은 적용 가능한 경우 적응형 공개 REST를 포함하여 문서화된 장소별 수집 경로를 따릅니다. 다운스트림 스키마는 일관성을 유지하는 동시에 각 소스가 관찰된 방법과 시간에 대한 메타데이터를 식별할 수 있습니다.
유료 플랜의 경우, DepthFeed의 WebSocket는 플랜별 연결 및 구독 제한이 있는 정규화된 라이브 북 채널을 제공합니다. 과거 REST 쿼리는 동일한 가격-크기 모양을 사용하므로 라이브 모니터링 및 리플레이에서 파싱 및 채우기 로직을 재사용할 수 있습니다.
프로덕션 실패 테스트
| 실패 | 예상되는 동작 | 안전하지 않은 동작 |
|---|---|---|
| 연결 끊김 | 재연결, 다시 시드, 알려진 상태에서 재개 | 오래된 로컬 북을 계속 변경 |
| 중복 업데이트 | 중복 처리 또는 소스 순서 확인 | 안정 크기 두 배 |
| 순서가 잘못된 업데이트 | 거부하거나 재구축 | 증거 없이 도착 순서로 적용 |
| 느린 소비자 | 백프레셔, 결합 또는 연결 끊기 정책 | 무제한 메모리 증가 |
| 최근 업데이트 없음 | 시장별 신선도 노출 | 마지막 가격을 라이브로 보고 |
Key takeaways
- 01델타가 신뢰할 수 있는 북을 형성하기 전에 완전한 시드가 존재해야 합니다.
- 02재연결 불확실성은 낙관적인 지속이 아닌 다시 시드를 트리거해야 합니다.
- 03소스 시간과 수신 시간은 다른 지연 시간 질문에 답합니다.
- 04정규화는 장소별 캡처 메타데이터를 유지해야 합니다.
- 05가장 안전한 라이브 및 과거 API는 하나의 명시적 사다리 모양을 공유합니다.
소켓 연결은 쉽습니다. 시드, 델타, 재연결 및 장소별 속주를 통해 정확한 북을 유지하는 것이 실제 엔지니어링 작업입니다.
무료로 시작