파운데이션DB(FoundationDB) 위에 구축된 분산 멀티모델 데이터베이스 '크로노톱(Kronotop)'이 약 3년간의 개발을 마치고 첫 개발자 프리뷰를 선보였습니다. 크로노톱의 핵심은 '하나의 트랜잭션, 여러 모델(One transaction, multiple models)'이라는 모토 아래, 문서형(document), 정렬된 키-값(ordered key-value) 등 다양한 데이터 모델과 심지어 여러 네임스페이스(namespace)에 걸쳐서도 엄격한 직렬화(strictly serializable) 가능한 단일 트랜잭션을 지원한다는 점입니다.
크로노톱은 현재 문서 모델을 위한 '버킷(Bucket)'과 RESP(REdis Serialization Protocol) 호환 정렬된 키-값 모델인 'ZMap'을 제공합니다. 버킷은 보조 인덱스(secondary index)와 벡터 검색(vector search) 기능을 포함하며, ZMap은 기존 RESP 호환 클라이언트와 연동할 수 있습니다. 예를 들어, 크로노톱 CLI(kronotop-cli)나 발키 CLI(valkey-cli)를 사용하면 단일 트랜잭션 내에서 판매 네임스페이스에 새 주문 문서를 기록하고, 동시에 재고 네임스페이스의 카운터를 업데이트하는 작업을 원자적으로(atomically) 처리할 수 있습니다. 이는 복잡한 비즈니스 로직을 일관성 있게 관리하는 데 큰 이점을 제공합니다.
이러한 멀티모델 트랜잭션 기능은 개발자들이 여러 유형의 데이터를 다루면서도 데이터 일관성을 유지하기 위해 복잡한 로직을 구현해야 했던 어려움을 해소해 줄 수 있습니다. 특히, 마이크로서비스 아키텍처나 분산 시스템 환경에서 각기 다른 데이터 저장소가 필요한 경우에도 단일 트랜잭션으로 통합 관리가 가능해져 개발 효율성을 높이고 잠재적인 데이터 불일치 문제를 줄일 수 있습니다. 크로노톱은 현재 개발자 프리뷰 단계로, API와 내부 형식, 운영 동작은 변경될 수 있지만, 핵심 아키텍처와 트랜잭션 모델은 안정적이라고 밝히고 있습니다.