지금까지 Saga 패턴의 개념을 이해하고 Saga 패턴을 직접 구현해봤다. 하지만 Saga 패턴을 더 꼼꼼하고 완벽하게 구현하려면 고려해야 하는 요소들이 훨씬 많다.
실제 MSA 환경에서는 네트워크 장애, 특정 서비스 장애, 동시에 여러 번의 요청 등 다양한 예외 상황이 발생할 수 있다. 일어날 가능성이 작긴 하지만 혹시 모를 상황을 대비해 방어 로직을 짜는 편이다.
대표적으로 아래와 같은 요소를 고려해서 구현해야 한다.
멱등성
동시성 이슈
격리성(Isolation) 문제
위 요소들을 고려해서 Saga 패턴을 다루게 되면 난이도가 확 올라간다. 이런 이유 때문에 입문자들이 MSA에서 Saga 패턴을 공부하다가 많이 포기한다. 그래서 위 요소들을 고려해서 꼼꼼하게 Saga 패턴을 구현하는 건 MSA 후속 강의에서 따로 다루도록 하겠다. 이번 강의에서는 MSA의 전체 흐름에 익숙해지는 것을 목표로 하자.