피드로 돌아가기
Dev.toDatabase
원문 읽기
PostGIS와 DynamoDB Streams 기반 2초 내 실시간 배송 허브 시스템 구현
How PostGIS and DynamoDB Streams Power a Real-Time Delivery Hub Platform
AI 요약
Context
라스트마일 배송 실패로 인한 건당 $5-15의 재배송 비용 발생 및 고객 경험 저하 문제 해결 필요. 기존 픽업 락커의 고객 방문 제약을 극복하기 위한 지역 거점 기반의 유연한 재배송 허브 플랫폼 설계 요구.
Technical Solution
- Aurora PostgreSQL(PostGIS)을 Source of Truth로 정의하여 공간 쿼리 기반의 최적 허브 매칭 및 배송 클러스터링 구현
- DynamoDB Single-Table Design을 도입하여 4가지 서로 다른 접근 패턴을 GSI로 최적화하고 이벤트 스트림 처리 효율 극대화
- DynamoDB Streams와 Lambda, Pusher를 연결한 이벤트 기반 파이프라인 구축으로 상태 변경 시 2초 이내 실시간 알림 전송
- Row-Level Security(RLS) 적용을 통한 멀티 테넌트 격리 및 pg_advisory_xact_lock 기반의 예약 슬롯 레이스 컨디션 방지
- DynamoDB Conditional Writes를 통해 분산 락 없이 이벤트 중복 쓰기를 제어하는 멱등성 확보
- TTL 설정을 통한 90일 주기 이벤트 데이터 자동 생명주기 관리로 스토리지 최적화
실천 포인트
1. 공간 데이터 처리 시 애플리케이션 로직 대신 PostGIS의 ST_DWithin, ST_ClusterDBSCAN 등 DB 레벨 쿼리로 연산 부하 감소
2. 실시간 알림 요구사항 시 'DB Write -> Stream -> Lambda -> WebSocket/Push' 체인을 통한 비동기 파이프라인 검토
3. Aurora Data API 사용 시 Geography 컬럼 직렬화 이슈 해결을 위해 ST_X, ST_Y 함수로 좌표를 Float 형태로 변환하여 추출
4. RLS 적용 시 Data API의 세션 유지 특성을 고려하여 Transaction 내에서 set_config 실행 필요