커스텀 인덱싱 프레임워크
커스텀 인 덱싱 프레임워크는 데이터 처리 로직을 정의하기 위해 구현할 특정 인터페이스를 노출한다. 일반적인 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` 모듈을 사용해 custom indexer를 구축한다. example indexer는 Sui checkpoint에서 transaction digest를 추출해 로컬 PostgreSQL에 저장하는 sequential pipeline을 보여준다.
커스텀 인덱서와 Walrus
Walrus는 콘텐츠 자체에서 파생된 고유 식별자를 사용해 데이터를 검색하는 content-addressable storage protocol이며 파일 경로나 위치를 사용하지 않는다. 커스텀 Sui Indexer를 Walrus와 통합하면 새로운 사용자 경험을 제공할 수 있다.
자체 스토어 사용하기 (BYOS)
customer indexer framework용 custom storage backend를 구현한다.