EDA (Event-Driven Architecture)

 

Event-Driven Architecture

  • 마이크로서비스는 서로의 API를 직접 호출하는 것 대신
    • 이벤트 메시지를 발행(Publish) / 구독(Subscribe) 하여 통신 가능
  • 데이터가 필요할 때 요청 대신 서비스에서 이벤트 소비
  • 이벤트를 통한 서비스 간 비동기 소통
    • 느슨한 결합 (Loose Coupling)
  • 분리된 통신 -> 독립적, 서비스간 의존성 최소화, 확장성 및 유연성 향상
  • 실시간 메시징 플랫폼
    • 메시지 큐나 이벤트 버스를 사용
    • 이벤트가 발생하는 대로 Publish -> Subscribe
    • CDC 사용 -> DB 변경 사항 추적 시스템 (실시간 이벤트)
  • 대용량 처리 (이벤트)
    • 필요에 따라 이벤트 소비자 추가 -> 수평적 확장 가능
    • 이벤트 버스 -> 이벤트를 병렬로 처리, 분배
    • 시스템의 다른 서비스들이 서로 간에 충돌 없이 사용 가능
  • 이벤트 스트림 처리
    • 실시간으로 이벤트 스트림 캡처/처리
    • 데이터의 실시간 처리 -> 분석
  • 이벤트 허브
    • 데이터 수집/배포를 위한 중앙 허브 역할
    • 마이크로서비스에 스트림 Publish / Subscribe
  • Publish 된 메시지들에 대한
    • 실시간 메시징 플랫폼
    • 스트림 처리
    • 이벤트 허브
    • 일괄 처리
    • 데이터 Intelligence

 

Event-Driven Architecture 장점

  • 이벤트 스트리밍
  • 실시간 처리
  • 대량 이벤트
  • 서비스 분리, 확장성 증가
  • 탄력성

 

Event-Driven Architecture 단점

  • 복잡성 증가, 이벤트 구동으로 인해 시스템 설계가 더 복잡해짐
  • 디버깅이 어려움
  • 이벤트 게시 프로세스에 대기 시간 추가
  • 분산 트랜잭션 처리 필요
  • 설정 및 유지 관리가 어려움

 

Reference
마이크로서비스 디자인 패턴 완벽 가이드
https://www.inflearn.com/course/%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4-%EB%94%94%EC%9E%90%EC%9D%B8%ED%8C%A8%ED%84%B4-msa

'기타 정보 > MSA' 카테고리의 다른 글

Scalability  (0) 2025.08.27
Authentication & Authorization  (0) 2025.08.27
Observability: Distributed Logging/Tracing  (0) 2025.08.27
Resilience Patterns  (1) 2025.08.27
Distributed Transaction(Saga Pattern, Outbox, CDC)  (0) 2025.08.27
CQRS - Command Query Responsibility Segregation  (2) 2025.08.26
Database Sharding Pattern  (2) 2025.08.26
Asynchronous Communications  (0) 2025.08.26