Watermill Nedir?

Watermill, mesaj akışlarını verimli bir şekilde işlemek için tasarlanmış bir Golang kütüphanesidir. Olay odaklı uygulamalar oluşturmak için tasarlanmış olup, olay kaynağı, mesaj tabanlı RPC, saga ve düşünebileceğiniz diğer tüm kullanım durumları için kullanılabilir. Geleneksel yayın/abone (publish/subscribe) Kafka veya RabbitMQ gibi uygulamaların yanı sıra, kullanım durumunuza bağlı olarak HTTP veya MySQL binlog gibi uygulamalar da kullanılabilir.

Watermill, bir dizi yayın/abone (publish/subscribe) uygulaması sağlar ve kendi uygulamanızı kolayca genişletebilirsiniz. Ayrıca, her mesaj odaklı uygulama tarafından kullanılan panolar, kuyruklar, hız sınırlama, ilişkilendirme vb. gibi standart ara yazılımlar da sunar.

Watermill Neden Kullanılır?

Son yıllarda mikro servis mimarisi benimseyen projelerin sayısının artmasıyla, tüm iş senaryoları eşzamanlı RPC çağrıları kullanılarak çözülememektedir. Asenkron görev işleme, değerli bir tamamlayıcı haline gelmiştir.

Watermill'in amacı, anlaşılabilir bir API'nin arkasında bulunan tüm bu karmaşıklığı gizleyerek, Go için standart mesajlaşma kütüphanesi haline gelmektir. Olay veya diğer asenkron kalıplara dayalı uygulamalar oluşturmak için gereken her şeyi sağlar. Örnekleri inceledikten sonra, Watermill'i projenize hızlı bir şekilde entegre edebilmelisiniz.