<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Watermill</title><link>https://69b9f622ea77c40008596038--watermill.netlify.app/</link><description>Recent content on Watermill</description><generator>Hugo</generator><language>en</language><copyright>Three Dots Labs</copyright><lastBuildDate>Wed, 09 Oct 2024 02:47:30 +0100</lastBuildDate><atom:link href="https://69b9f622ea77c40008596038--watermill.netlify.app/index.xml" rel="self" type="application/rss+xml"/><item><title>Message</title><link>https://69b9f622ea77c40008596038--watermill.netlify.app/docs/message/</link><pubDate>Wed, 05 Dec 2018 12:42:40 +0100</pubDate><guid>https://69b9f622ea77c40008596038--watermill.netlify.app/docs/message/</guid><description>Message is one of core parts of Watermill. Messages are emitted by Publishers and received by Subscribers . When a message is processed, you should send an Ack() or a Nack() when the processing failed.</description></item><item><title>Publisher &amp; Subscriber</title><link>https://69b9f622ea77c40008596038--watermill.netlify.app/docs/pub-sub/</link><pubDate>Wed, 05 Dec 2018 12:47:30 +0100</pubDate><guid>https://69b9f622ea77c40008596038--watermill.netlify.app/docs/pub-sub/</guid><description>Publisher // ... type Publisher interface { // Publish publishes provided messages to the given topic. // // Publish can be synchronous or asynchronous - it depends on the implementation.</description></item><item><title>Router</title><link>https://69b9f622ea77c40008596038--watermill.netlify.app/docs/messages-router/</link><pubDate>Wed, 05 Dec 2018 12:48:04 +0100</pubDate><guid>https://69b9f622ea77c40008596038--watermill.netlify.app/docs/messages-router/</guid><description>Publishers and Subscribers are rather low-level parts of Watermill. In production use, you&amp;rsquo;d usually want to use a high-level interface and features like correlation, metrics, poison queue, retrying, throttling, etc.</description></item><item><title>Middleware</title><link>https://69b9f622ea77c40008596038--watermill.netlify.app/docs/middlewares/</link><pubDate>Sat, 01 Jun 2019 19:00:00 +0100</pubDate><guid>https://69b9f622ea77c40008596038--watermill.netlify.app/docs/middlewares/</guid><description>Introduction Middleware wrap handlers with functionality that is important, but not relevant for the primary handler&amp;rsquo;s logic. Examples include retrying the handler after an error was returned, or recovering from panic in the handler and capturing the stacktrace.</description></item><item><title>Metrics</title><link>https://69b9f622ea77c40008596038--watermill.netlify.app/advanced/metrics/</link><pubDate>Tue, 12 Feb 2019 21:00:00 +0100</pubDate><guid>https://69b9f622ea77c40008596038--watermill.netlify.app/advanced/metrics/</guid><description>Monitoring of Watermill may be performed by using decorators for publishers/subscribers and middlewares for handlers. We provide a default implementation using Prometheus, based on the official Prometheus client for Go.</description></item><item><title>CQRS Component</title><link>https://69b9f622ea77c40008596038--watermill.netlify.app/docs/cqrs/</link><pubDate>Tue, 12 Feb 2019 12:47:30 +0100</pubDate><guid>https://69b9f622ea77c40008596038--watermill.netlify.app/docs/cqrs/</guid><description>The CQRS component is a high-level API that lets you work with Go structs instead of messages.
Once you configure the EventBus and EventProcessor (or the command equivalents), publishing and handling events becomes very straightforward.</description></item><item><title>Forwarder (the outbox pattern)</title><link>https://69b9f622ea77c40008596038--watermill.netlify.app/advanced/forwarder/</link><pubDate>Wed, 13 Jan 2021 12:47:30 +0100</pubDate><guid>https://69b9f622ea77c40008596038--watermill.netlify.app/advanced/forwarder/</guid><description>Publishing messages in transactions (and why we should care) While working with an event-driven application, you may in some point need to store an application state and publish a message telling the rest of the system about what&amp;rsquo;s just happened.</description></item><item><title>FanIn (merging topics)</title><link>https://69b9f622ea77c40008596038--watermill.netlify.app/advanced/fanin/</link><pubDate>Sat, 21 Jan 2023 12:47:30 +0100</pubDate><guid>https://69b9f622ea77c40008596038--watermill.netlify.app/advanced/fanin/</guid><description>FanIn component The FanIn component merges two topics into one.
Configuring // ... type Config struct { // SourceTopics contains topics on which FanIn subscribes.</description></item><item><title>Troubleshooting</title><link>https://69b9f622ea77c40008596038--watermill.netlify.app/docs/troubleshooting/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://69b9f622ea77c40008596038--watermill.netlify.app/docs/troubleshooting/</guid><description>Logging In most cases, you will find the answer to your problem in the logs. Watermill offers a significant amount of logs on different severity levels.</description></item><item><title>FanOut (multiplying messages)</title><link>https://69b9f622ea77c40008596038--watermill.netlify.app/advanced/fanout/</link><pubDate>Wed, 09 Oct 2024 02:47:30 +0100</pubDate><guid>https://69b9f622ea77c40008596038--watermill.netlify.app/advanced/fanout/</guid><description>FanOut component FanOut is a component that receives messages from a topic and passes them to all subscribers. In effect, messages are &amp;ldquo;multiplied&amp;rdquo;.</description></item></channel></rss>