본문으로 건너뛰기

시스템 아키텍처

마진킹 데이터 파이프라인은 수집기(collectors) → 저장소(Redis/RDS) → data-api → 소비자(프론트/알람) 구조입니다.

전체 구성도

레이어역할
수집기모듈별 컨테이너. 외부 소스를 폴링/WS 구독 → 정규화 → 저장소 적재
Redis (lcache)시세/온체인/테마 등 휘발성·고빈도 데이터. 키별 JSON
RDS (marginking-db)뉴스·경제캘린더·코인마켓 등 영속 데이터
RDS (whale)고래 체결/청산 (유일한 MySQL 적재 수집기)
data-apiKotlin/WebFlux 읽기 전용 API. Redis/RDS 조회 → JSON envelope
소비자프론트엔드, 알람 수집기

저장소 선택 기준

coinglass 복호화 흐름

coinglass 데이터는 암호화 응답이라 자체 디코더(libs/coinglass)로 처리합니다.

liqMap 특이사항

coinglass index/5/liqMap요청 IP 로 게이팅 + accessToken 을 로그인 IP 에 바인딩합니다. 플래그된 IP 는 40000 거부 → 로그인·요청을 상용 SOCKS(허용 IP) 로 보내고 복호화만 로컬에서 수행합니다. 나머지 coinglass 엔드포인트는 direct(+내장 재시도)로 동작.

로컬 개발 (터널)

수집기는 로컬 도커로도 구동합니다. 사설망 리소스는 호스트 터널을 경유합니다.

관측성 (Sentry)

모든 모듈 index.mjsinitSentry() + uncaughtException/unhandledRejection 핸들러를 등록하고, 콜렉터는 실패 시 reportError()(= GlitchTip captureException)로 보고합니다. DB/redis/coinglass/WS 레이어도 캡처. → 수집 실패는 전부 GlitchTip 으로 발송.