피드로 돌아가기
Dev.toInfrastructure
원문 읽기
EventBridge와 Git-based Contract로 구현한 런타임 장애 제로 지향 EDA 설계
Contract-First Event-Driven Architecture on AWS
AI 요약
Context
서비스 확장 시 발생하는 Event Contract 불일치로 인한 Consumer Crash 및 데이터 오분류 문제 해결 필요. 단순한 Transport 계층의 분리만으로는 필드명, 타입, Enum 값 등 데이터 레벨의 Hidden Coupling을 해결하기 어려운 한계 존재.
Technical Solution
- Git Repository를 Single Source of Truth로 설정하여 스키마 정의 및 버전 관리 체계 구축
- CI/CD 파이프라인 내 Schema Linting 및 이전 버전과의 Compatibility Check를 통한 Breaking Change 사전 차단
- EventBridge Schemas를 활용한 스키마 배포 및 다양한 언어의 Code Binding 지원으로 개발 생산성 향상
- Producer 측면의 Runtime Validation 도입을 통해 유효하지 않은 이벤트의 EventBridge 진입을 원천 봉쇄
- Consumer의 Tolerant Reader 패턴 적용을 통한 스키마 변경에 대한 유연한 대응 구조 설계
- Design-time(CI)과 Runtime(Producer)의 2중 검증 레이어를 통한 시스템 안정성 확보
실천 포인트
- 이벤트 스키마 정의를 코드 작성보다 우선하는 Contract-First 접근법 검토 - CI 단계에서 Breaking Change 여부를 자동으로 판별하는 스키마 비교 스크립트 도입 - Producer가 EventBridge에 데이터를 전송하기 전 JSON Schema 기반의 유효성 검증 로직 추가 - Consumer 설계 시 필수 필드 외의 변경 사항을 무시하는 관대한 파싱 전략 채택