워터밀이란?

워터밀은 메시지 스트림을 효율적으로 처리하기 위한 Golang 라이브러리입니다. 이는 이벤트 주도형 애플리케이션을 구축하기 위해 설계되었으며 이벤트 소싱, 메시지 기반 RPC, 사가 등을 비롯한 모든 사용 사례에 활용할 수 있습니다. 사용 사례에 따라 Kafka나 RabbitMQ와 같은 전통적인 발행/구독 구현뿐만 아니라 HTTP나 MySQL binlog를 사용할 수도 있습니다.

워터밀은 발행/구독 구현을 제공하며 사용자 정의 구현을 쉽게 추가할 수 있습니다. 또한 대시보드, 큐, 속도 제한, 상관 관계 등과 같은 표준 미들웨어도 제공되며, 이는 모든 메시지 기반 애플리케이션에서 사용됩니다.

왜 워터밀을 사용해야 하는가?

최근 몇 년간 점점 많은 프로젝트가 마이크로서비스 아키텍처를 채택함에 따라 동기식 RPC 호출로는 해결할 수 없는 비즈니스 시나리오가 많아지고 있습니다. 비동기 작업 처리는 가치 있는 보완이 되어왔습니다.

워터밀의 목표는 Go를 위한 표준 메시징 라이브러리로, 모든 복잡성을 이해하기 쉬운 API 뒤에 숨기는 것입니다. 이는 이벤트나 기타 비동기 패턴에 기반한 애플리케이션을 구축하기 위해 필요한 모든 것을 제공합니다. 예제를 검토한 후 빠르게 워터밀을 프로젝트에 통합할 수 있어야 합니다.