Event Router
-
이코에코(Eco²) Streams & Scaling for SSE #8: Event Router 구현이코에코(Eco²)/Event Streams & Scaling 2025. 12. 27. 22:13
TL;DR이전 포스팅에서 Eco² Composite Event Bus의 구축 전반을 서술했습니다.이번 포스팅에서는 Event Router의 코드 구현을 상세히 살펴봅니다. 핵심 모듈:main.py: FastAPI 앱, 라이프사이클 관리core/consumer.py: XREADGROUP 기반 이벤트 소비core/processor.py: Lua Script 기반 멱등성 처리core/reclaimer.py: XAUTOCLAIM 기반 장애 복구1. 모듈 구조domains/event-router/├── main.py # FastAPI 앱 진입점├── config.py # 환경 설정├── core/│ ├── consumer.py # StreamConsumer ..
-
이코에코(Eco²) Streams & Scaling for SSE #6: Event Router + Pub/Sub (Fan-out Layer)이코에코(Eco²)/Event Streams & Scaling 2025. 12. 27. 19:15
TL;DRSSE Gateway, 단일 Consumer에서 분산 Fan-out까지에서 Consistent Hash + StatefulSet으로 non-HA 연결 라우팅을 해결했지만, 수평확장을 적용할 경우 이벤트가 Dest Pod로 도착하는 것이 보장되지 않았습니다.Worker의 해싱과 Istio의 해싱이 일치하지 않아, Pod 수가 동적인 HA 환경에선 라우팅이 불가능했고, 해싱 불일치를 해결하기 위해선 Istio의 Consistent Hashing에 호응하도록 Woker 측 추가 구현 부담이 가해졌습니다. 이는 해시 기반 라우팅이 SSE HA를 위한 해법이 아님을 시사했고 결국 Fan-out 계층(Event Router+Pub/Sub)의 분리로 이어졌습니다.1. 지난 포스팅 정리1연결당 XREAD50 ..