

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



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

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

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


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


Spring Kafka의 seek 기능으로 컨슈머 중단 없이 Kafka 메시지를 재처리하는 방식을 소개했습니다. Redis Pub/Sub로 요청을 전파해 분산된 모든 컨슈머에서 오프셋을 이동했습니다.


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


Kafka Streams로 서로 다른 토픽의 동일 키 메시지를 병합해 검색 인덱싱 파이프라인을 단순화했습니다. Spring Kafka와 헬스체크로 스트림즈 상태를 관리·모니터링했습니다.


카프카 컨슈머 적체와 반복 리밸런싱으로 지연된 검색 색인 문제를 분석했습니다. max.poll과 Spring Kafka 배치 리스너 조정으로 스루풋을 높이고 리밸런싱을 방지했습니다.
이 게시물은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.


검색 인덱싱 파이프라인의 메시지 적체와 반복 리밸런싱 원인을 Kafka 소비 설정에서 점검했습니다. Batch Listener와 배치 색인으로 처리 스루풋을 높이고 리밸런싱을 방지했습니다.