피드로 돌아가기
InfoQInfoQ
Backend

100개 서비스 중단 없는 RDB Sequence 대체 전략

Article: Replacing Database Sequences at Scale Without Breaking 100+ Services

Saumya Tyagi2026년 4월 3일22intermediate

Context

관계형 데이터베이스에서 NoSQL(DynamoDB)로 전환하며 기존 Sequence 기능 상실. 100개 이상의 서비스가 고유 ID 생성과 정렬 보장을 위해 RDB Sequence에 의존하는 구조. 전사적인 레거시 DB 제거를 위해 애플리케이션 수정 최소화 및 호환성 확보가 시급한 상황.

Technical Solution

  • 엄격한 전역 순서와 공백 없는 ID 생성 요구사항을 제거하여 분산 코디네이션 복잡도 해소
  • DynamoDB를 단일 진실 공급원(Source of Truth)으로 설정하고 ID 블록 단위 할당 방식 도입
  • 애플리케이션 내부에 라이브러리 형태로 Sequence 생성 로직을 내장하여 네트워크 홉 제거
  • 클라이언트와 서버의 2단계 캐싱 전략을 통해 DynamoDB 장애 시에도 서비스 가용성 유지
  • 시작 값, 사용자 정의 증감분, 오름차순/내림차순 등 기존 DB Sequence의 모든 파라미터 지원
  • 슬라이딩 윈도우 방식의 리필 메커니즘을 적용하여 ID 고갈 전 선제적 확보 구조 설계

Impact

  • Orders 팀의 서비스 12개를 3주 만에 마이그레이션 완료
  • 서비스당 코드 수정 범위 50라인 미만으로 최소화
  • 전체 요청의 99%를 네트워크 통신 없이 로컬 메모리 내에서 처리

Key Takeaway

분산 시스템 설계 시 실제 비즈니스에 필요한 최소한의 제약 조건(Constraint)을 식별하면 복잡한 합의 알고리즘 없이도 단순하고 견고한 아키텍처 도출 가능.


분산 ID 생성기 도입 시 엄격한 순서 보장 여부를 재검토하고, 로컬 캐싱과 블록 할당 방식을 통해 네트워크 오버헤드를 제거할 것

원문 읽기