Loading...
2021. 3. 21. 12:16

[MSA] 7. MSA의 트랜잭션 이야기 3 - 이벤트 소싱과 CQRS

이벤트 소싱을 처음 접하게 된 것은 2017 SpringCamp에서였습니다. 당시에는 MSA라는 개념에 대해 잘 알지도 못했고, MSA는 대기업에서나 쓸 수 있고, 적용가능한 엄청나게 큰 아키텍처였다. 라고만 인식하고 무작정 배웠을 때였습니다. 그런데, 최근 제가 다니고 있는 회사에서 이벤트 소싱과 CQRS라는 주제로 이야기를 했었는데요. 다시금 CQRS를 보려고 하니, 그 개념이 잘 기억나지 않고, 어떤 특징을 가지고 있었는지를 파악하기가 어려워서 이렇게 정리하게 되었습니다. 그럼 MSA의 트랜잭션 이야기 3번째 이벤트 소싱과 CQRS 시작하도록 하겠습니다. 전통적인 CRUD 가끔은 이런 생각이 들 때가 있습니다. 전통적인 CRUD를 사용함으로써 백엔드 엔지니어가 데이터베이스를 사용할 때 트랜잭션 로직..

2020. 11. 2. 22:10

[MSA] 6. MSA의 트랜잭션 이야기 2 - Two-Phase commit과 Saga

이전 글에 이어서 MSA 내에서 트랜잭션을 원활히 하는 방법 2가지를 소개해드리고자 합니다. 관계형 데이터베이스와 더불어 모놀리틱 아키텍처를 도입한 서버 애플리케이션은 DB 서버에서 제공하는 Commit과 Rollback을 이용하여 데이터를 일관성 있게 제어할 수 있었습니다. 그러나 MSA에서는 각 서비스별로 DB 인스턴스와 애플리케이션이 분리됨에 따라 관계형으로 맺어진 Entity들은 서로가 다른 인스턴스로 운영되고, 그들 리소스를 받기 때문에 데이터의 일관성이 무너지게 됩니다. 이를 위해 우리는 분산 트랜잭션 기술을 이용하여 이들 일관성을 지킬 수 있는 방법이 있습니다. 1. Two-Phase Commit Two-Phase Commit이란, 2단계에 거쳐서 영속하는 작업을 말합니다. 이렇게 말하면 아..