피드로 돌아가기
Dev.toBackend
원문 읽기
REST 동기 병목 제거를 통한 확장성 확보 및 EDA 전환
From REST to Event-Driven Architecture: How Backend Development Is Changing
AI 요약
Context
REST 기반 Request-Response 모델의 강한 결합도로 인한 서비스 간 의존성 심화. 하위 서비스의 지연 및 장애가 전체 시스템의 Latency 스파이크와 가용성 저하로 전이되는 구조적 한계 직면.
Technical Solution
- 직접적인 API 호출 대신 Event Emission 방식을 통한 Producer와 Consumer의 완전한 Decoupling 구현
- 즉각적 일관성 대신 Eventual Consistency 모델을 채택하여 트랜잭션 처리 효율성 증대
- Apache Kafka 등 Durable Log 기반 플랫폼을 통한 이벤트 저장 및 시점 기반 상태 재구성 가능 구조 설계
- 신규 서비스 추가 시 기존 Producer 수정 없이 Subscribe만으로 기능을 확장하는 유연한 아키텍처 구축
- 메시지 중복 처리를 위한 Idempotency 설계 및 Poison Message 해결을 위한 Dead-letter Queue 도입
실천 포인트
1. Polling이나 Scheduled Job으로 처리 중인 고부하 워크플로우를 EDA 전환 대상 1순위로 선정
2. OpenTelemetry 등을 활용한 Distributed Tracing을 구축하여 비동기 흐름의 가시성 확보
3. Consumer 설계 시 중복 이벤트 수신에도 상태가 오염되지 않는 Idempotency 보장 로직 검토
4. Avro나 Protobuf를 도입하여 하위 호환성을 유지하는 Event Schema Evolution 전략 수립