

컬리의 입고 시스템이 외부 인입 데이터를 안전하게 동기화하는 방법
외부 채널 입고 정보를 안전하게 동기화하기 위해 아웃박스 패턴과 재시도 토픽을 적용한 사례를 소개했습니다. Spring Kafka와 Namastack Outbox로 원자성, 재시도, 실패 알림을 정리했습니다.
#Spring Boot#Kafka
158005분


외부 채널 입고 정보를 안전하게 동기화하기 위해 아웃박스 패턴과 재시도 토픽을 적용한 사례를 소개했습니다. Spring Kafka와 Namastack Outbox로 원자성, 재시도, 실패 알림을 정리했습니다.

DynamoDB 부하를 실시간으로 감지해 Kafka 컨슈머를 pause/resume하는 역압력 아키텍처를 구축했습니다. 운영 적용 후 처리량을 낮추고 실시간 API 안정성과 비용 절감을 확인했습니다.

Kafka 소비 시 JSON 역직렬화 설정이 왜 기대대로 동작하지 않는지 과정을 따라가며 분석했습니다. 헤더 타입 정보와 타입 매핑, trusted packages, target type 우선순위를 조정해 해결했습니다.


카프카 컨슈머 처리량을 외부 DB 부하에 맞춰 동적으로 조절하는 방법을 다뤘습니다. Thread.sleep()의 한계와 pause()/resume()을 활용한 리밸런싱 회피 방식을 설명했습니다.


Spring Kafka의 seek 기능으로 컨슈머를 멈추지 않고 오프셋을 이동하는 방법을 정리했습니다. 분산 환경에서는 HTTP API와 Redis Pub/Sub로 요청을 전파해 그룹 단위 재처리를 구현했습니다.