watermill

Building event-driven applications the easy way in Go.

MIT License

Stars
7.3K
Committers
52

Bot releases are visible (Hide)

watermill - v1.2.0-rc.2

Published by roblaszczak over 4 years ago

Expose Prometheus metrics at /metrics endpoint (#168) - thanks @lebaptiste!

watermill - v1.2.0-rc.1

Published by roblaszczak over 4 years ago

watermill - v1.1.1

Published by roblaszczak over 4 years ago

  • added missing godoc (#177)
  • close all subscribers in TestConcurrentSubscribe (#178) - thanks @chrisseto!
watermill - v1.1.0

Published by m110 almost 5 years ago

Add FanOut.

FanOut is a component that receives messages from the subscriber and passes them to all publishers. In effect, messages are "multiplied".

A typical use case for using FanOut is having one external subscription and multiple workers inside the process.

watermill - v1.0.4

Published by roblaszczak almost 5 years ago

  • Fix the paths in basic/4-metrics example (#169) - thanks @maclav3!
  • Added more poison queue context (#170)
watermill - v1.0.3

Published by roblaszczak almost 5 years ago

  • Fix godoc typos (#164) - thanks @boreq!
  • Add subscribe and publish topics to message context (#165) - thanks @eafzali!
  • Added docs for router context (#167) - thanks me!
watermill - v1.0.2

Published by roblaszczak almost 5 years ago

  • Update shortuuid library (#161) - thanks @sexyhamster!
  • Create Duplicator middleware duplicating messages (#156) - thanks @0michalsokolowski0!
  • Add Synchronizing Databases example (#147) - thanks @m110!
watermill - v1.0.1

Published by roblaszczak almost 5 years ago

Changelog:

  • Docs fixed - thanks @danielparks, @0xflotus, @elgohr, @0michalsokolowski0!
  • Added Middleware per handler support (#149, #157) - thanks @0michalsokolowski0!
  • Fixed Pub/Sub tests execution (#158)
watermill - v1.0.0

Published by roblaszczak about 5 years ago

Finally, we've done that - Watermill 1.0 is alive!

It took us to do that more than 500 days, since initial commit.
First of all, I would like to thank all contributors and people, who helped us with providing feedback - big applause for all of you please!

Changelog:

  • Moved all repositories (excluding go-channel implementation) to separated repositories
  • Added CQRS marshallers functions (#78) - thanks @sagikazarmark!
  • Added NoPublishHandlerFunc (#82)
  • Removed context from googlecloud.NewPublisher (#83) and proper ctx propagation/timeout (#89) - thanks @m110!
  • Added context.Context to router.Run (#84) - thanks @m110!
  • Removed message.PubSub interface (#85) - thanks @m110!
  • Added Timeout middleware (#87) - thanks @m110
  • Added context canceling support to Retry middleware and refactor of Retry middleware (#86)
  • Added SQL Pub/Sub (#56) - thanks @maclav3!
  • Pub/Subs constructors clean-up (#93) - thanks @m110!
  • Middlewares documentation (#94)
  • Remove mill router timeouts (#104) - thanks @maclav3!
  • Separated [Pub/Sub docs](TODO-link] section (#103) - thanks @maclav3!
  • Fixed race conditions (#115) - thanks @m110!
  • Better example verification (#108) - thanks @jedruniu!
  • Only close the output channel once - thanks @codekoala!
  • Upgrade backoff library ;) (#109) - thanks @sagikazarmark!
  • Update examples: #79, #108, #113, #114, #116, #118, #119, #120, #122 - thanks @m110, @jedruniu, @gabeduke!
  • Print stacktrace on panic recover (#117) - thanks @andreyromancev!
  • Rename go-nats-streaming to stan.go (#75) - thanks @MartinForReal
  • Heavy universal Pub/Sub tests refactoring and stabilization
  • Benchmarks - thanks @m110!
watermill - v1.0.0-rc.3

Published by m110 about 5 years ago

  • Fix gochannel-related races (#115)
  • Print stacktrace on panic recover. (#117)
watermill - v1.0.0-rc.2

Published by roblaszczak about 5 years ago

Fixed build in go1.13beta1 with GOPROXY.

watermill - v1.0.0-rc.1

Published by roblaszczak about 5 years ago

All changes in release candidate are stable and production-ready.

What is missing:

  • UPDATE instructions
  • Changelog
  • Update documentation and examples
  • Some random stuff
watermill - v0.4.0

Published by roblaszczak over 5 years ago

This release wouldn't be possible with 7 contributors. Thanks!

Changelog:

  • Added io.Reader and io.Writer Pub/Sub implementation (#53) (thanks @maclav3!)
  • Added mill, CLI tool for consuming and producing messages from the console. It is working now for Kafka, RabbitMQ and Google Cloud Pub/Sub (thanks @maclav3!)
  • Fixed multiple race conditions
  • Added context propagation to CQRS component (#62) (thanks @sagikazarmark!)
  • More extensible CQRS component configs (#67)
  • Added RabbitMQ TopologyBuilder (#72) (thanks @bkielbasa!)
  • Allow generating routing key based on topic (#70) (thanks @bkielbasa!)
  • Add function for subscriber/publisher to reuse nats streaming connection (#58) (thanks @MartinForReal!)
  • Changed CI to CircleCI (thanks @m110!)
  • Fixed copy-paste ;) (thanks @sagikazarmark!)
  • Closing router when all handler has stopped (#55)
  • go.mod cleanups
  • We have a logo, thanks Natalia!

Breaking changes and upgrade instructions: UPGRADE-0.4.md

watermill - v0.4.0-rc.3

Published by roblaszczak over 5 years ago

watermill - v0.4.0-rc.2

Published by roblaszczak over 5 years ago

make routing key dynamic in queue bind (#70)

watermill - v0.4.0-rc.1

Published by roblaszczak over 5 years ago

Changelog: TODO

watermill - v0.3.0

Published by roblaszczak over 5 years ago

watermill - v0.2.1

Published by roblaszczak almost 6 years ago

NATS:

  • add default ack wait timeout, the lack of default value caused ACK timeout immediately
watermill - v0.2.0

Published by roblaszczak almost 6 years ago

  • Added watermill.io docs. (#18)
  • Added context.Context to the message. (#24)
  • Replaced Kafka Pub/Sub implementation with Sarama (no cgo needed now!). (#22)
  • Added Google Cloud Pub/Sub. (#10)
  • Added NATS Streaming Pub/Sub. (#19)
  • ...and more minor changes

Detailed changelog: https://threedots.tech/post/watermill-0-2/

Breaking changes and API cleanups:

  • kafka.NewCustomPublisher is removed, please use NewPublisher instead.
  • kafka.ConfluentConsumerConstructor is removed and no longer needed.
  • kafka.SubscriberConfig.NoConsumerGroup is no longer needed. You can now just pass empty kafka.SubscriberConfig.ConsumerGroup.
  • kafka.AutoOffsetReset is removed. Please use github.com/Shopify/sarama.Config.Consumer.Offsets.Initial passed to NewSubscriber overwriteSaramaConfig argument instead.
  • kafka.ConsumersCount is removed and no longer needed.
  • kafka.KafkaConfigOverwrite is removed and no longer needed. You can now pass sarama.Config to NewSubscriber and NewPublisher.
  • kafka.NewConfluentSubscriber is removed. Please use kafka.NewSubscriber instead.
  • kafka.NewCustomConfluentSubscriber is removed. Please use kafka.NewSubscriber instead.
  • kafka.DefaultConfluentConsumerConstructor is removed and no longer needed.
  • kafka.Marshaler and kafka.Unmarshaler interface was changed to compatible with Sarama API.
watermill -

Published by roblaszczak almost 6 years ago

Middlewares:

  • fixed throttling middleware

Docs:

  • added README
  • added new example

Misc:

  • added go modules support
  • some code cleanups