Two Phase Commit (feat. MSA)
starryeye:
MSA 아키텍처가 어려운 이유중 하나는.. 여러 마이크로 서비스간의 트랜잭션 처리이다. 기존 Monolithic 아키텍처에서는 DBMS가 제공해주는 트랜잭션 기능을 사용했다.. 자세하게.. 관계형 데이터베이스 + Monolithic 아키텍처를 도입한 서버 Application은 DB 서버에서 제공하는 트랜잭션의 Commit 과 Rollback을 이용하여 데이터를 일관성 있게 제어가 가능하다. 하지만.. MSA 구조에서는 Application 과 DB 가 분산 되어.. 트랜잭션 처리를 DBMS에서 제공하는 기능을 통해 달성할 수 없다. 자세하게.. MSA 구조에서는 각 서비스별로 DB 인스턴스 + Application이 분리 됨에 따라 관계형으로 맺어진 Entity들은 서로가 다른 인스턴스로 운영되고, 그..