피드로 돌아가기
Designing High-Performance Blockchain Indexers
Dev.toDev.to
Database

Streaming과 Batch 하이브리드 설계를 통한 고성능 Blockchain Indexer 최적화

Designing High-Performance Blockchain Indexers

beefed.ai2026년 5월 25일11advanced

Context

On-chain Ledger의 불변성으로 인한 느린 Random Read 문제를 해결하기 위해 Append-only 블록을 사용자 경험 중심의 Read Model로 변환하는 Indexer 설계가 필요함. 기존 단일 DB 구조에서 발생하는 CPU/IO 스파이크와 Reorg 발생 시의 데이터 정합성 붕괴가 주요 병목 지점으로 분석됨.

Technical Solution

  • User-facing State와 Hot Path 처리를 위해 Node → Ingest Service → Kafka → Store로 이어지는 Streaming Pipeline 구축
  • 대규모 Historical Analysis 및 Backfill 작업을 위한 1k~10k Block 단위의 Coarse Window Batch Processing 도입
  • 단일 엔티티 조회(Point-get)는 Postgres의 ACID 트랜잭션을 활용하고, 대규모 타임라인 스캔 및 분석은 ClickHouse의 Columnar Storage를 사용하는 Polyglot Persistence 전략 채택
  • Write Amplification 감소를 위해 500ms 타임아웃 또는 500개 이벤트 단위의 Micro-batching Consumer 로직 구현
  • 데이터 정합성 보장을 위해 Idempotency 설계 및 Staging Table을 활용한 Atomic Swap 기반의 Schema-swap Plan 수립

- API의 성격이 Authoritative(Source of Truth)인지 Advisory(Eventual Consistency)인지 우선 정의 - Heavy Backfill 작업이 Streaming Path의 리소스를 잠식하지 않도록 시스템 간 물리적 디커플링 검토 - Reorg 대응을 위한 정교한 Rollback 메커니즘 및 Idempotency 보장 여부 확인 - Query 패턴에 따라 Row-oriented(Postgres)와 Columnar(ClickHouse) 저장소 분리 적용

원문 읽기