Skip to content
This repository has been archived by the owner on Jun 23, 2023. It is now read-only.

Releases: heetch/felice

v2.2.0

04 Feb 15:47
e4fd2cb
Compare
Choose a tag to compare

This release adds a minimal implementation of the MurmurHash2 hashing algorithm that's used for JVM Kafka client compatible partitioning and in turn removes a dependency that was previously used for this. This enables apps that use felice to upgrade to newer versions of github.com/Shopify/sarama without compile time errors in a transitive dependency. See #67 for more details.

v2.1.0

09 Jun 10:35
dab99cc
Compare
Choose a tag to compare
  • Modify Discarded function to be explicit on what to do in case of discarding the message #66

This is backwards incompatible change but it just requires this change:

- config.Discarded = func(msg *sarama.ConsumerMessage, err error) {
-                       ... discarded stuff
-                    }
+ config.Discarded = func(ctx context.Context, msg *sarama.ConsumerMessage, err error) bool {
+                       ... discarded stuff
+                       return true
+                    }

v2.0.0

05 Feb 10:39
5a0d488
Compare
Choose a tag to compare

It changes the default partitioner to use the default JVM partitioner which uses murmur2 hash algorithm. #60

New import change is required after this backwards incompatible change: github.com/heetch/felice/v2

new API

10 Jun 12:09
50d1ccb
Compare
Choose a tag to compare

This major-version update simplifies the Felice API significantly.
It is not a backwardly compatible change.

It removes retry, logging and metrics logic from the package entirely,
leaving it up to the caller to manage those for itself.
It also adds a context.Context argument to the HandleMessage method
signature. This is so that a long-running handler (for example one that's
spending time retrying) can know when to stop. See #52 for more details.

It also updates to use the latest version of Sarama, which provides consumer-group
support, so there's no need to use the external sarama-cluster package.

Issues #28, #28 and #35 are now redundant and will be closed.

add SendMessages method

20 Dec 17:13
35892d8
Compare
Choose a tag to compare

This release targets the sendmessages-v0.4.0 feature branch which adds bulk message sending support without breaking the existing released API.

It adds a SendMessages method to send multiple messages concurrently more efficiently than sending them individually.

v0.3.0

14 Jun 14:08
9e5bce5
Compare
Choose a tag to compare
  • use exponential backoff when handling messages
  • avoid github.com/satori/go.uuid package
  • support Go modules

Version 0.2.0

10 Jan 09:45
68226f7
Compare
Choose a tag to compare

New features

MessageConverter

Felice provides a generic way of defining messages that is not tied to the way this message is sent to Kafka. In Felice, a message contains a body and may contain a key and headers.
The way this information is sent to Kafka is a function of the MessageConverter used. Some MessageConverter could decide to send headers using the Kafka headers feature and encode the body using JSON, whilst another might want to wrap the headers and body, into an Avro message and send everything as the Kafka value.
This allows decoupling of business logic from the convention used to format messages so it is easy to change the format without changing too much code.

Config

Producer and Consumer package now require passing a config value. Config contains Felice specific configuration as well as Sarama and Sarama-Cluster configuration, so users can customize the behaviour of producers and consumers.

Codec

Felice provides now a codec package containing utility types that will ease key and body encoding.

Version 0.1.0

13 Nov 14:28
Compare
Choose a tag to compare

Felice 0.1.0

What is Felice?

Felice is an opinionated library for producing and consuming messages on Kafka. It wraps Shopify's Sarama library and simplifies it somewhat.

What is in release 0.1.0 ?

The 0.1.0 release is intended to match the functionality of the internal Kafka library that is used within Heetch. Felice differs from that library in the following ways:

  • Felice is issued under an Open Source license (MIT) . Yay! 🎉 🎈 🎆
  • Code and configuration specific to Heetch's infrastructure and architecture has been removed.

Today you can use a Producer to send messages on kafka topics, and use a Consumer and Handler to consume them.

Full changelog

2018-11-13 Geoffrey John Teale [email protected]

* : Merge pull request #19 from heetch/bootstap-documentation Bootstrap documentation

2018-11-13 Geoffrey John Teale [email protected]

* consumer/consumer.go: Improve the docs for Consumer.Serve

2018-11-13 Geoffrey John Teale [email protected]

* consumer/consumer.go: Expand in-line docs for Consumer struct

2018-11-13 Geoffrey John Teale [email protected]

* consumer/doc.go: Expand docs on Consumer.Serve to explain
parameters.

2018-11-12 Geoffrey John Teale [email protected]

* README.md: Add a "Where should I start?" section to README.md

2018-11-12 Geoffrey John Teale [email protected]

* consumer/doc.go: Add package level documentation for the Consumer.

2018-11-12 Geoffrey John Teale [email protected]

* : commit 86503274503d31ef29cd17f06e012829936e220d Author: Geoffrey
J. Teale <[email protected]> Date:   Wed Oct 24 16:31:30 2018 +0200

2018-10-24 Geoffrey J. Teale [email protected]

* message/option.go: Fix typo "paramters" -> "parameters"

2018-10-24 Geoffrey J. Teale [email protected]

* message/doc.go, message/message.go: Document default message
headers.

2018-10-24 Geoffrey J. Teale [email protected]

* message/message.go: Insert missing "it".

2018-10-24 Geoffrey J. Teale [email protected]

* consumer/handler/doc.go: Make example handlers have the correct
signature.

2018-10-24 Geoffrey J. Teale [email protected]

* consumer/handler/interface.go: Document behaviour when
HandleMessage returns an error.

2018-10-24 Geoffrey J. Teale [email protected]

* consumer/doc.go, consumer/handler/collection.go,
consumer/handler/doc.go, consumer/handler/interface.go,
message/doc.go, message/message.go, message/option.go: Remove double
spaces after periods.

2018-10-24 Asdine El Hrychy [email protected]

* consumer/handler/doc.go: Fix typo "conusmer" -> "consumer" Co-Authored-By: tealeg <[email protected]>

2018-10-24 Geoffrey J. Teale [email protected]

* consumer/doc.go, consumer/handler/doc.go,
consumer/handler/interface.go, message/doc.go, message/message.go,
message/option.go: Fix typo "recieve" -> "receive"

2018-10-22 Geoffrey J. Teale [email protected]

* message/message.go: Improve documentation of the Mesasge type

2018-10-22 Geoffrey J. Teale [email protected]

* message/doc.go: Introduce the message package.

2018-10-22 Geoffrey J. Teale [email protected]

* message/option.go: Document Option, Header and Key more completely

2018-10-22 Geoffrey J. Teale [email protected]

* consumer/handler/interface.go: Improve documentation of Handler
interface

2018-10-22 Geoffrey J. Teale [email protected]

* consumer/handler/func.go: Flesh out the HandlerFunc documentation.

2018-10-22 Geoffrey J. Teale [email protected]

* consumer/handler/doc.go: Describe handler.Collection type in
package overview documentation

2018-10-22 Geoffrey J. Teale [email protected]

* consumer/doc.go: Fix typo in comment.

2018-10-19 Geoffrey J. Teale [email protected]

* consumer/handler/doc.go: Introduce the handler package and discuss
Handler interface

2018-10-18 Geoffrey J. Teale [email protected]

* consumer/doc.go: Add initial doc.go for the, as yet, empty
consumer package.

2018-11-07 Geoffrey John Teale [email protected]

* : Merge pull request #20 from heetch/support-logging Support logging

2018-11-06 Geoffrey John Teale [email protected]

* consumer/consumer.go: Remove commented code

2018-11-05 Geoffrey J. Teale [email protected]

* common/logger.go, common/testutil.go, consumer/consumer.go,
consumer/consumer_internal_test.go, consumer/consumer_test.go,
consumer/handler/collection.go: Simplify logging and log testing

2018-11-05 Geoffrey J. Teale [email protected]

* consumer/consumer.go, consumer/consumer_internal_test.go: Make
NewConsumer private (newConsumer)

2018-11-05 Geoffrey J. Teale [email protected]

* Gopkg.lock, consumer/consumer.go,
consumer/consumer_internal_test.go, consumer/consumer_test.go: Make
ClusterConsumer interface private (clusterConsumer)

2018-11-05 Geoffrey J. Teale [email protected]

* consumer/consumer.go: Remove ClusterConsumer type.

2018-11-02 Geoffrey John Teale [email protected]

* consumer/consumer.go: Log in consumer message handling

2018-11-02 Geoffrey John Teale [email protected]

* consumer/consumer_internal_test.go: Make assertions about logging
in handleMessages

2018-11-02 Geoffrey John Teale [email protected]

* consumer/consumer.go: Make Consumer testable by wrapping
cluster.Consumer in an interface

2018-11-02 Geoffrey John Teale [email protected]

* consumer/consumer_test.go: Use common.Testlogger instead of
defining locally

2018-11-02 Geoffrey John Teale [email protected]

* common/testutil.go: Create TestLogger to simply testing log output

2018-11-01 Geoffrey John Teale [email protected]

* consumer/consumer.go: Make Consumer.Handler and Consumer.Serve
emit expected logs

2018-11-01 Geoffrey John Teale [email protected]

* consumer/consumer_test.go: Test that consumer.Handle and
consumer.Serve emit logs

2018-11-01 Geoffrey John Teale [email protected]

* Gopkg.lock: Update Gopkg.lock

2018-10-30 Geoffrey John Teale [email protected]

* consumer/handler/collection.go: Make consumer.Handle log the topic
being registered

2018-10-30 Geoffrey John Teale [email protected]

* consumer/consumer_test.go: Test that Consumer.Handle logs

2018-10-30 Geoffrey John Teale [email protected]

* common/logger.go: Add common.Logger

2018-10-29 Yasss [email protected]

* : Merge pull request #18 from heetch/import-consumer Import consumer from Kafka-go

2018-10-29 Yasss [email protected]

* consumer/consumer.go, consumer/consumer_internal_test.go: Export
metrics field from Consumer type

2018-10-24 Geoffrey J. Teale [email protected]

* message/option.go: Fix typo "ths" → "this"

2018-10-24 Geoffrey J. Teale [email protected]

* message/option.go: Fix typo "paramters" -> "parameters"

2018-10-24 Geoffrey J. Teale [email protected]

* message/doc.go, message/message.go: Document default message
headers.

2018-10-24 Geoffrey J. Teale [email protected]

* message/message.go: Insert missing "it".

2018-10-24 Geoffrey J. Teale [email protected]

* consumer/handler/doc.go: Make example handlers have the correct
signature.

2018-10-24 Geoffrey J. Teale [email protected]

* consumer/handler/interface.go: Document behaviour when
HandleMessage returns an error.

2018-10-24 Geoffrey J. Teale [email protected]

* : commit a83b1b30719c0bf55676109bedf20416f686c230 Author: Geoffrey
J. Teale <[email protected]> Date:   Wed Oct 24 15:26:03 2018 +0200

2018-10-24 Asdine El Hrychy [email protected]

* consumer/handler/doc.go: Fix typo "conusmer" -> "consumer" Co-Authored-By: tealeg <[email protected]>

2018-10-24 Geoffrey J. Teale [email protected]

* consumer/doc.go, consumer/handler/doc.go,
consumer/handler/interface.go, message/doc.go, message/message.go,
message/option.go: Fix typo "recieve" -> "receive"

2018-10-22 Geoffrey J. Teale [email protected]

* message/message.go: Improve documentation of the Mesasge type

2018-10-22 Geoffrey J. Teale [email protected]

* message/doc.go: Introduce the message package.

2018-10-22 Geoffrey J. Teale [email protected]

* message/option.go: Document Option, Header and Key more completely

2018-10-22 Geoffrey J. Teale [email protected]

* consumer/handler/interface.go: Improve documentation of Handler
interface

2018-10-22 Geoffrey J. Teale [email protected]

* consumer/handler/func.go: Flesh out the HandlerFunc documentation.

2018-10-22 Geoffrey J. Teale [email protected]

* consumer/handler/doc.go: Describe handler.Collection type in
package overview documentation

2018-10-22 Geoffrey J. Teale [email protected]

* consumer/doc.go: Fix typo in comment.

2018-10-19 Yasss [email protected]

* consumer/consumer.go: Add Stop method

2018-10-19 Geoffrey J. Teale [email protected]

* consumer/handler/doc.go: Introduce the handler package and discuss
Handler interface

2018-10-18 Yasss [email protected]

* consumer/consumer.go, consumer/consumer_internal_test.go: Add
testing for the configuration creation

2018-10-18 Geoffrey J. Teale [email protected]

* consumer/doc.go: Add initial doc.go for the, as yet, empty
consumer package.

2018-10-17 Geoffrey J. Teale [email protected]

* consumer/consumer_internal_test.go: Test Consumer.setup

2018-10-17 Geoffrey J. Teale [email protected]

* consumer/consumer_internal_test.go: Document test cases.

2018-10-17 Geoffrey J. Teale [email protected]

* consumer/consumer_internal_test.go: Expand tests to include metric
reporting

2018-10-16 Geoffrey J. Teale [email protected]

* consumer/consumer_internal_test.go: Make assertions about Message
passed to the metric Reporter

2018-10...

Read more