본문 바로가기
마이크로서비스

Eventuate.io 간단 파헤치기

by simplify-len 2020. 10. 29.

https://eventuate.io/

요즘 일주일에 2시간이상의 시간을 들여, 학습 중인 프레임워크입니다.

해당 프로젝트의 저자는 마이크로 서비스 패턴 라는 이름의 책으로 출판되었습니다.

이 책을 발견하기 전에, 마이크로서비스에서 메세지 알고리즘을 좀 더 쉽게 쓸 수 없을까? 라는 물음표를 시작으로 Eventuate 프레임워크를 알게 되었고, 점차 MSA의 문제점을 해결하는 Eventuate에 매료되었습니다.

그럼, Eventuate는 어떤 프레임워크일까요?

모놀리식에서 MSA로 변경시 가장 문제가 되는 부분은 분산 데이터 관리 문제라고 합니다.

여기서 말하는 분산 데이터 관리 문제란?

각 마이크로 서비스에는 자체 개인 데이터베이스가 있습니다. 여러 서비스에서 데이터를 검색하는 쿼리뿐만 아니라 여러 서비스에서 데이터 일관성을 유지하는 비지니스 트랜잭션을 구현하는 것은 어렵습니다. 그렇다면 데이터 일관성은 또 무엇일까요?

데이터 일관성이란?

각 사용자가 일관된 데이터를 볼 수 있도록 하는 것을 의미하는 것을 의미합니다.

Eventuate는 마이크로서비스를 개발할 수 있도록 도와주는 오픈소스 플랫폼입니다.

그리고 Eventuate는 2가지로 구성되어 있습니다.

  1. Eventuate Tram

    기존 지속성을 사용하는 서비스용 프레임 워크입니다. 비지니스 로직을 다시 작성할 필요없이 Eventurate Tram을 Spring Boot, Micronaut 및, .NET 마이크로 서비스에 쉽게 추가 할 수 있습니다.

  2. Eventuate Local

    이벤트 소싱 프레임 워크, 이벤트 소싱은 이벤트 중심 비즈니스 로직 및 지속성 프로그래밍 모델로, 데이터 변경시 이벤트 자동 게시, 모든 업데이트에 대한 안정적인 모니터링, 쿼리에 대한 기본 지원 등 이점이 있습니다. Eventuate Local은 이벤트 저장소와 클라이언트 라이브러리로 구성됩니다.

어떻게 Eventuate가 마이크로서비스를 개발할 수 있게 도와주는 걸까요?

  • sagas를 사용하여 데이터 일관성을 유지시켜줍니다. 메시지를 사용하여 조정된 로컬 트랜잭션 시퀀스인 Sagas를 사용하여 여러 마이크로 서비스에서 데이터를 업데이트하는 명령을 구현합니다.

  • CQRS를 사용하여 쿼리 구현

    이벤트를 사용하여 유지관리되는 쉽게 쿼리 가능한 CQRS를 사용하여 여러 서비스에서 데이터를 검색하는 쿼리 구현

  • 트랜잭션 메시징을 사용하여 통신. 트랙잭션 아웃 박스 또는 이벤트 소싱 패턴을 사용하여 데이터베이스 트랜잭션 일부로 메시지와 이벤트를 안정적으로 보내고 받습니다.

오늘은 간단하게 Eventuate에 대해서 알아보았습니다. 다음 포스트에서는 Local과 Tram의 차이점을 분석해보는 시간을 갖도록 하겠습니다.

감사합니다.

댓글