outbox
-
이코에코(Eco²) Eventual Consistency #4: Blacklist Relay Worker 구현이코에코(Eco²)/Eventual Consistency 2025. 12. 30. 15:35
1. 전체 디자인1.1 시스템 개요①auth-api → RabbitMQ정상 발행 (99%+)②auth-api → RedisMQ 실패 시 Outbox 적재③Redis → auth-relay1초마다 폴링④auth-relay → RabbitMQOutbox 이벤트 재발행⑤RabbitMQ → ext-authzFanout 브로드캐스트1.2 데이터 흐름단계컴포넌트동작①Redis BlacklistSETEX token:blacklist:{jti} {ttl}②Publisherbasic_publish() 시도③Outbox → Relay실패 시 LPUSH → RPOP → republish④RabbitMQFanout 브로드캐스트⑤ext-authzcache.Store(jti, entry) 2. 주요 컴포넌트2.1 컴포넌트 의존성..
-
이코에코(Eco²) Eventual Consistency #3: ext-authz 로컬 캐시 일관성 보장 설계이코에코(Eco²)/Eventual Consistency 2025. 12. 30. 15:12
1. 문제 정의1.1 현재 아키텍처에서 발생할 수 있는 불일치┌─────────────────────────────────────────────────────────────────────────────┐│ 현재 아키텍처 (Best Effort) │├─────────────────────────────────────────────────────────────────────────────┤│ ││ User Logout ..
-
Transactional Outbox: 이중 쓰기 문제의 해결이코에코(Eco²)/Foundations 2025. 12. 21. 19:08
원문: Transactional Outbox Pattern - Chris Richardson (microservices.io)참고: Microservices Patterns - Chris Richardson (Manning, 2018)참고: Designing Data-Intensive Applications - Martin Kleppmann (O'Reilly, 2017) 들어가며마이크로서비스 아키텍처에서 까다로운 문제 중 하나다. 데이터베이스 업데이트와 메시지 발행을 어떻게 원자적으로 처리할 것인가?Chris Richardson이 "Microservices Patterns"에서 공식화한 Transactional Outbox 패턴은 이 문제에 대한 우아한 해결책을 제시한다. 이 패턴은 Pat Helland..