[CS] EDA 설계 (Event Driven Architecture)

2022. 4. 16. 17:33CS기초 (Computer Science)

반응형

1. Event Drive 주요 요소

 

1. Event

  • 관찰 하기로 약속된 주요 사건

2. Producer

  • 이벤트 감지와 생성

3. Consumer

  • 이벤트를 소비하여 로직 처리

4. Event Bus

  • Producer에서 Consumer로 이벤트 전달

 

2. Event Driven 제약 사항

  • 이벤트는 발생한 사건에 대해 약속된 형식 사용
  • 불변 (과거의 메시지를 변경할 수 없음)
  • 발생한 사건에 대한 결과 상태 전달
  • 생성자는 이벤트 처리 상태에 관여하지 않음
  • 소비자는 이벤트 생성자에 관심 갖지 않음

 

3. EDA (Event Driven Architecture 구조와 동작 방식)

 

 

4. Event Driven Architecture 설계 시 고려 사항

  • Loosely coupling
  • Removing dependencies
  • Non-blocking transcation
  • Asynchronized callback
  • Fallback / Retry
  • Event logging

5. Event Driven Architecture 패턴

  • Single Producer - Single Consumer (가장 단순한 개념이고, 일반적인 동기 서버 개념)
  • Single Producer - Multi Consumer (가장 흔한 경우로 쓰인다)
    - 이벤트 처리 비용이 이벤트 생성 비용보다 높을 경우
    - 참고(https://ko.wikipedia.org/wiki/%EC%83%9D%EC%82%B0%EC%9E%90-%EC%86%8C%EB%B9%84%EC%9E%90_%EB%AC%B8%EC%A0%9C)
  • Dead letter Queue (실패한 레코드를 보관하는 별도의 큐)
    - 설정한 Retry limitation 동안 이벤트가 처리 되지 않을 경우 main message queue에서 제거 하고 사후 분석을 위해 DLQ (Dead Letter Queue)로 이동
    - 참고(https://devidea.tistory.com/111)
  • Time to Live
    - 처리 되지 않은 이벤트의 생명 주기를 제한하여 만료 되면 이벤트 폐기
  • Asynchronouse request-response
    - Polling
  • Event Splitting
    - 한 Event에 대해 여러 로직의 처리가 필요한 경우

 

 

출처: 빗썸 테크아카데미 (코드스테이츠 백엔드 심화과정)

 

반응형

'CS기초 (Computer Science)' 카테고리의 다른 글

[CS] 세션과 쿠키  (0) 2022.04.18
[CS] Reactive Programing 문법 및 개념  (0) 2022.04.17
[CS] Event Driven Microservice  (0) 2022.04.12
[CS] 카프카란?  (0) 2022.04.11
[CS] 서버리스  (0) 2021.11.30