
242
2
부
이벤트 기반 아키텍처
연습 문제
이번 장에서는 간단하면서 멋진 문제를 하나 소개한다. 주
allocate
()
유스 케이스를
API
는
물론(또는
API
를 쓰지 않고) 레디스 채널을 통해 이벤트로도 호출할 수 있게 하자.
아마도 새로운
E2E
테스트를 추가하고
redis
_
eventconsumer
.
py
를 상당히 바꿔야 할 것이다.
11.7
마치며
이벤트는 외부에서 들어올 수 있다. 하지만 이벤트를 외부로 발행할 수도 있다. 우리가 만든
publish
핸들러는 이벤트를 레디스 메시지 채널의 메시지로 변환한다. 우리는 이벤트를 사용
해 외부 세계와 이야기한다. 이런 종류의 시간적인 결합을 사용하면 애플리케이션 통합 시 상
당한 유연성을 얻을 수 있다. 하지만 언제나 그렇듯이 다른 대가를 치르게 될 것이다.
이벤트 통지는 낮은 수준의 결합을 암시하기 때문에 멋지고, 설정하기도 상당히 쉽다. 하지만 여러
가지 이벤트 통지에 대해 실행되는 논리적인 흐름이 정말 존재한다면 (…) 프로그램 본문에서는
이런 흐름이 명시적이지 않기 때문에 이런 흐름을 알아보기가 어렵다. (…) 이로 인해 이벤트 통지
를 사용한 시스템의 디버깅이나 변경이 어려워질 수 있다.
마틴 파울러, ‘이벤트 기반이 무슨 뜻인가?’ (
https
://
oreil
.
ly
/
uaPNt
)
[표
11
-
1
]은 트레이드오프를 ...