Kafka 실패 메시지는 어떻게 다시 처리할까kafka 를 이용하여 컨슘한 메시지를 처리하고, 완료 후에 이벤트를 발행하는 서비스를 개발하였다. 개발 환경에서 테스트를 할 때는 DLQ 로 빠지는 이벤트가 없었지만, 실제 운영 환경에서는 msa 서버간의 통신 중에 timeout 이 종종 일어난다거나 Database 증설 작업 등으로 순단이 발생하였다. 현재 내가 개발한 서비스는 event 처리에 실패하면 DLQ topic으로 메시지를 보내고, 원본 topic의 offset은 진행된다. 다만 DLQ topic을 별도로 consume하는 로직은 아직 없고, 운영자가 API를 직접 호출해서 필요한 비즈니스 로직과 event 발행을 수동으로 수행하고 있다. 이 구조는 당장에 처리해야할 메시지를 정상적인 것 처럼 ..
DLT
Delta Live Table 이란? Databricks 에서 데이터 파이프라인을 관리하고 자동화하는 서비스이다. Delta Lake 및 Spark 와 연동되어 스트리밍 방식과 배치 방식을 모두 제공한다. DLT 는 console에서 오토 스케일링, 스케줄링, 알림 기능을 제공한다. Delta Live Table 으로 파이프라인을 구성할 때는 databricks 에서 제공하는 dlt 라이브러리를 사용해야 하며, 일반 spark cluster 가 아닌 Delta Live Table Pipeline 에서 구성 및 실행해야 한다는 특징이 있다. Delta Live Table 가 등장하게된 배경은 Python 뿐만 아니라 SQL 쿼리로도 '스트리밍' 처리를 할 수 있게 한다는 아이디어에서 나왔다고 한다. 엔지니..