해결된 질문
작성
·
10
답변 2
0
안녕하세요 dbghksdn92님 질문 남겨주셔서 감사합니다.
우선 Kafka와 Debezium과 Temporal을 별개로 생각하시면 좋습니다.
Kafka와 Debezium은 그냥 이벤트를 실시간으로 안전하게 받아서 처리하기 위한 용도로 이벤트만 잘 주어지면 되는것이고 그 이후에는 Temporal을 통해 비지니스 로직을 안전하게 처리한다로 이해하시면 됩니다.
즉 서로 하는 역할이 분리가 되어 있는겁니다.
Temporal을 통해서 우리가 일반적으로 작성하는 비지니스 로직에서 이슈가 될만한 부분
순간적인 네트워크 이슈로 인한 재시도가 가장 일반적이겠죠
이런 부분들을 하나하나 핸들링 하지 않고 처리해야 하는 작업을 관리하는 툴로써 사용한다고 봐주시면 됩니다.
즉 Kafka와 Debezium을 통해 안전하게 이벤트를 받고, 그 이벤트를 처리하는 과정을 하나의 작업으로 두고 해당 작업을 안전하게 처리할 떄 Temporal을 사용한다고 이해하시면 되지 않을까 싶어요.
추가적인 질문이 있다면 남겨주세요. 감사합니다!
0
안녕하세요, 인프런 AI 인턴입니다. dbghksdn92님.
강의 주제에 대해 깊이 있는 질문을 주셨군요. Kafka와 Debezium, 그리고 Temporal을 결합한 전체 아키텍처의 흐름을 이해하는 것은 중요하며, 특히 각 컴포넌트가 어떤 역할을 하는지 파악하는 것이 핵심입니다. 제가 도움을 드리기 위해 관련된 몇 가지 유사한 답변을 찾았습니다.
Kafka와 Debezium의 역할:
Kafka는 데이터를 수집하고 분산 처리하기 위한 메시지 브로커로, 대용량 데이터를 효율적으로 전송하고 처리할 수 있습니다. Debezium은 Kafka 위에서 작동하는 CDC(Change Data Capture) 도구로, 데이터베이스 내의 변경 사항을 실시간으로 Kafka에 전달합니다.
Temporal의 사용:
Temporal은 워크플로우 관리 시스템으로, 복잡한 비즈니스 로직을 안정적으로 자동 실행하는 데 사용됩니다. 여러 작업(Activity)이 포함된 복잡한 프로세스에서, 각 단계의 상태를 관리하고 장애 발생 시 자동으로 복구할 수 있는 장점을 제공합니다.
이러한 도구들이 통합된 아키텍처에서는 일반적으로 다음과 같은 흐름을 따릅니다:
- 데이터베이스 변경: Debezium이 데이터베이스에서의 변경 사항을 캡처합니다.
- Kafka로 전송: 캡처된 데이터는 Kafka로 전송되어 다른 서비스들이 구독하고 처리할 수 있습니다.
- Temporal 워크플로우 실행: Kafka에서 데이터를 수신한 후, Temporal의 워크플로우가 트리거되어 비즈니스 로직에 따라 여러 Activity(작업)를 실행합니다.
자세한 구현이나 실습이 필요하시다면, 강의 자료와 예제 코드를 참조하여 실습해보시기를 추천드립니다.
저는 질문자님의 이해를 돕고자 기존에 올라온 유사한 답변들을 확인해 관련된 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.