피드로 돌아가기
Syncing the Real Market: Consuming Brapi and Feeding Redis with Spring Boot
Dev.toDev.to
Backend

Redis TTL과 Market Hour Guard 기반의 저지연 마켓 데이터 동기화 아키텍처

Syncing the Real Market: Consuming Brapi and Feeding Redis with Spring Boot

Roberto de Vargas Neto2026년 4월 26일6intermediate

Context

Matching Engine의 초저지연 의사결정을 위해 외부 API 호출이나 DB 쿼리 없이 실시간 시세에 접근해야 하는 요구사항 발생. 기존 HTTP 통신 기반의 데이터 조회 방식은 네트워크 지연으로 인해 마이크로초 단위의 처리 성능 확보에 한계가 있음.

Technical Solution

  • Matching Engine의 직접 참조를 통한 Microseconds 단위의 응답 속도 확보를 위한 Redis 기반 Cache-Aside 구조 설계
  • 시장 운영 시간 외 불필요한 API 호출 방지를 위한 ZonedDateTime 기반의 Market Hours Guard 로직 구현
  • 데이터 신선도 보장 및 서비스 장애 시 잘못된 시세 사용 방지를 위한 5분 단위의 Redis TTL 설정
  • 무료 플랜 API의 Throttling 방지를 위해 티커별 200ms 간격의 호출 지연 및 개별 try-catch를 통한 부분 실패 격리
  • Unix Epoch 타임스탬프의 LocalDateTime 변환을 위한 Custom Deserializer 구현으로 데이터 무결성 확보
  • Docker 컨테이너의 UTC 기본 설정으로 인한 시간 오차 해결을 위해 JVM 시작 옵션에 America/Sao_Paulo 타임존 명시

- 외부 API 연동 시 Rate Limit 대응을 위한 호출 간격 제어 로직 검토 - 분산 환경에서 시간 기반 로직 구현 시 JVM 타임존 설정 및 ZonedDateTime 사용 여부 확인 - 데이터 유효 기간(TTL) 설정을 통해 시스템 장애 시 Stale Data로 인한 오작동 방지 설계 - 환경 변수 설정 시 기본값(Default Value) 제공을 지양하여 보안 자격 증명 노출 방지

원문 읽기