오케스트레이션 방식에서는 중앙 관리자가 존재하여, 그 관리자가 모든 서비스 간의 작업을 지휘하고 순차적으로 각 서비스를 호출합니다.
각 서비스는 오케스트레이터의 지시에 따라 자신의 역할을 수행합니다.
중앙 관리자(오케스트레이터)가 모든 트랜잭션과 작업의 흐름을 조정합니다.
코레오그래피
코레오그래피 방식에서는 각 서비스가 독립적으로 일을 수행하며, 서로 이벤트를 주고받아 자율적으로 작업을 처리합니다. 중앙 관리자 없이 각 서비스가 자신의 작업을 완료하면 이벤트를 발생시켜 다른 서비스가 그 이벤트를 받아 다음 작업을 수행합니다.
오케스트레이션과 코레오그래피의 장점과 단점
오케스트레이션 방식
장점:
중앙 집중 관리: 오케스트레이터가 전체 트랜잭션 흐름을 관리하므로 제어가 명확합니다.
일관된 오류 처리: 중앙에서 오류나 실패 상황에 대해 쉽게 관리할 수 있어 보상 트랜잭션을 처리하기 용이합니다.
트랜잭션 흐름이 명확: 서비스 간의 상호작용이 중앙에서 통제되므로 로직이 단순하게 보일 수 있습니다.
단점:
단일 장애점(Single Point of Failure): 오케스트레이터가 모든 작업을 관리하므로, 오케스트레이터가 장애가 나면 전체 시스템에 문제가 발생할 수 있습니다.
확장성 한계: 중앙 관리 방식이기 때문에 시스템이 확장될수록 오케스트레이터의 복잡성이 증가할 수 있습니다.
코레오그래피 방식
장점:
자율성과 확장성: 각 서비스가 독립적으로 작업을 처리하고, 서로 이벤트로 통신하므로 확장성이 높고 유연한 시스템 구축이 가능합니다.
결합도가 낮음: 각 서비스는 자신이 처리해야 할 이벤트에만 의존하므로, 서비스 간 결합도가 낮고 독립적으로 배포, 운영이 가능합니다.
고가용성: 중앙 관리자가 없기 때문에 단일 장애점이 존재하지 않음.
단점:
복잡한 추적과 디버깅: 서비스 간 이벤트를 통해 상호작용하기 때문에, 트랜잭션 흐름을 추적하거나 디버깅하는 것이 어려울 수 있습니다.
오류 처리의 복잡성: 서비스 간의 상호작용에서 발생하는 오류를 처리하거나 보상 트랜잭션을 관리하기 어렵습니다.
활용 예시
오케스트레이션 활용 예시
주문 처리 시스템: 고객이 상품을 주문하면 중앙의 오케스트레이터가 주문 생성, 결제, 재고 관리, 배송을 순서대로 처리합니다. 중간에 문제가 발생하면 중앙에서 이를 쉽게 관리하고 보상 트랜잭션을 처리할 수 있습니다.
예를 들어, 오케스트레이터가 주문을 생성하고, 성공하면 결제를 진행하고, 결제가 성공하면 재고를 감소시키고, 그 후에 배송을 진행하는 순차적인 흐름을 제어합니다.
코레오그래피 활용 예시
이커머스 시스템: 주문, 결제, 재고, 배송 등의 각 서비스가 독립적으로 이벤트를 주고받으면서 작업을 처리합니다. 각 서비스는 주문이 완료되었음을 알리는 이벤트를 받아, 결제를 진행하고, 결제가 완료되면 재고를 감소시키며, 그 후 배송을 처리하는 방식으로 자율적으로 협력합니다.
예를 들어, 주문 서비스가 주문이 완료되었음을 알리는 이벤트를 발행하면, 결제 서비스가 이를 받아 결제를 진행하고, 결제 완료 이벤트를 발행하면 재고 서비스가 이를 받아 재고를 감소시키는 이벤트 기반 흐름이 이루어집니다.
정리
오케스트레이션은 중앙 관리자가 모든 트랜잭션을 관리하고 순서대로 작업을 처리하며, 제어가 명확하지만 확장성과 유연성에서 한계가 있습니다.
코레오그래피는 각 서비스가 자율적으로 작업을 처리하고 이벤트를 통해 상호작용하며, 확장성과 유연성이 뛰어나지만, 트랜잭션 흐름을 추적하기 어려운 단점이 있습니다.
오케스트레이션
오케스트레이션 방식에서는 중앙 관리자가 존재하여, 그 관리자가 모든 서비스 간의 작업을 지휘하고 순차적으로 각 서비스를 호출합니다. 각 서비스는 오케스트레이터의 지시에 따라 자신의 역할을 수행합니다.
중앙 관리자(오케스트레이터)
가 모든 트랜잭션과 작업의 흐름을 조정합니다.코레오그래피
코레오그래피 방식에서는 각 서비스가 독립적으로 일을 수행하며, 서로 이벤트를 주고받아 자율적으로 작업을 처리합니다. 중앙 관리자 없이 각 서비스가 자신의 작업을 완료하면 이벤트를 발생시켜 다른 서비스가 그 이벤트를 받아 다음 작업을 수행합니다.
오케스트레이션과 코레오그래피의 장점과 단점
오케스트레이션 방식
코레오그래피 방식
활용 예시
오케스트레이션 활용 예시
코레오그래피 활용 예시
정리