Was ist Watermill?

Watermill ist eine Golang-Bibliothek zur effizienten Verarbeitung von Nachrichtenströmen. Sie ist so konzipiert, dass sie sich für die Entwicklung ereignisgesteuerter Anwendungen eignet und für Ereignisquellen, nachrichtenbasierte RPC, Sagas und alle anderen Anwendungsfälle verwendet werden kann, die Sie sich vorstellen können. Je nach Anwendungsfall können Sie herkömmliche Publish/Subscribe-Implementierungen wie Kafka oder RabbitMQ sowie HTTP oder MySQL Binlog verwenden.

Watermill bietet eine Reihe von Publish/Subscribe-Implementierungen und kann einfach um Ihre eigene Implementierung erweitert werden. Außerdem verfügt es über Standard-Middleware wie Dashboards, Warteschlangen, Ratenbegrenzung, Korrelation usw., die von jeder nachrichtengesteuerten Anwendung verwendet werden.

Warum Watermill verwenden?

In den letzten Jahren haben eine zunehmende Anzahl von Projekten die Microservices-Architektur übernommen, und nicht alle Geschäftsszenarien können mit synchronen RPC-Aufrufen gelöst werden. Die asynchrone Aufgabenbearbeitung ist zu einer wertvollen Ergänzung geworden.

Das Ziel von Watermill ist es, zur Standard-Messaging-Bibliothek für Go zu werden, und die gesamte Komplexität hinter einer verständlichen API zu verbergen. Es bietet alles, was Sie benötigen, um Anwendungen auf der Grundlage von ereignisgesteuerten oder anderen asynchronen Mustern zu erstellen. Nachdem Sie sich die Beispiele angesehen haben, sollten Sie in der Lage sein, Watermill schnell in Ihr Projekt zu integrieren.