커스텀 인덱싱 프레임워크
커스텀 인덱싱 프레임워크는 데이터 처리 로직을 정의하기 위해 구현할 특정 인터페이스를 노출한다. 일반적인 API는 다음과 같다:
process(): 원시 checkpoint 데이터(transaction, event, object change)를 원하는 database row로 변환한다. 여기서 의미 있는 정보를 추출하고 관련 데이터를 필터링하며 저장 형식으로 정리한다.commit(): 적절한 transaction 처리와 함께 처리된 데이터를 database에 저장한다. 프레임워크는 효율적인 bulk operation을 위해 처리된 데이터 배치 와 함께 이 함수를 호출한다.prune(): retention policy에 따라 오래된 데이터를 정리한다(선택 사항). 최근 데이터는 유지하면서 오래된 데이터를 제거해 database 크기를 관리하는 데 유용하다.
sequential 및 concurrent pipeline 유형과 그 trade-off는 Pipeline Architecture에서 자세히 설명한다.
커스텀 인덱서
`sui-indexer-alt-framework`는 Sui에서 고성능 custom blockchain indexer를 구축하기 위한 강력한 Rust 프레임워크이다. 데이터 수집, 처리, 저장을 위한 커스터마이즈 가능한 프로덕션 레벨 컴포넌트를 제공한다.
인덱서 파이프라인 아키텍처
`sui-indexer-alt-framework`는 두 가지 고유한 파이프라인 아키텍처를 제공한다. `sui-indexer-alt-framework`가 제공하는 sequential pipeline과 concurrent pipeline의 차이점을 이해하여 프로젝트 요구 사항에 가장 적합한 것을 결정한다.
커스텀 인덱서 만들기
`sui-indexer-alt-framework` 모듈을 사용해 custom indexer를 구축한다. example indexer는 Sui checkpoint에서 transaction digest를 추출해 로컬 PostgreSQL에 저장하는 sequential pipeline을 보여준다.
자체 스토어 사용하기 (BYOS)
customer indexer framework용 custom storage backend를 구현한다.
인덱서 데이터 및 통합
Sui indexers와 custom data sources 및 storage systems를 통합하는 방법을 알아본다. 유연한 indexing solutions를 구축하기 위한 checkpoint data sources, custom store implementations, Move event deserialization을 다룬다.
인덱서 런타임 및 성능
런타임 구성, 리소스 모니터링, 디버깅 도구를 통해 Sui custom indexer 성능을 최적화하는 방법을 알아본다. 수집 설정, 데이터베이스 튜닝, Tokio console 디버깅, Prometheus metrics, 데이터 pruning 전략을 다룬다.