Skip to content

Latest commit

 

History

History
399 lines (296 loc) · 29.2 KB

CHANGELOG.md

File metadata and controls

399 lines (296 loc) · 29.2 KB

Changelog

All relevant changes to mateusjunges/laravel-kafka will be documented here.

##2024-11-22 v2.4.1

  • Allow to customize flush settings (retries + timeout) by @sash in #317

##2024-11-04 v2.4.0

  • Allow to use other types of Keys other than strings by @mateusjunges in #322

##2024-11-04 v2.3.2

  • Prefer new Laravel 11 Cache key by @cragonnyunt in #321

##2024-10-14 v2.3.1

  • Convert KAFKA_CONSUMER_DEFAULT_TIMEOUT to an integer to avoid type error by @niuf416 in #230

##2024-10-06 v2.3.0

  • Add message id key name to config by @LabbeAramis in #315
  • Adds in the ability to set complete body when producing messages by @sash in #316

##2024-08-18 v2.2.0

  • Introduce async publishing by @mateusjunges and @sash in #312
  • Allow to reset the Kafka Manager by @mateusjunges in #314

##2024-08-17 v2.1.5

  • Do not override topic when publishing batch messages by @mateusjunges in #313

##2024-08-05 v2.1.4

  • Fix consumer middlewares not working as expected when using the $consumer parameter in message handlers by @sash in #304

##2024-08-02 v2.1.3

  • Attempt to fix invalid group id generation by @mateusjunges in #305

##2024-07-19 v2.1.2

  • Add int casting to getLastRestart method by @glioympas in #298
  • Allow null payloads when sending the message to DLQ
  • Properly shut down the producer for single messages. Improve docs for sending single and multiple messages by @mateusjunges on #283
  • Replace resolve with app by @SachinBahukhandi in #280
  • Mirror logic to enable fake builder set the topic name for all the messages at once by @cvairlis in #279
  • Fix type error caused by wrong type on commit parameter by @panaiteandreisilviu on #276
  • Do not require to specify message topic twice by @mateusjunges in #270
  • Allow to queue message handlers by @mateusjunges in #177
  • Add missing return types by @mateusjunges in #189
  • Upgrade to PHP 8.1 and make code more maintainable by @mateusjunges in #161
  • Allow to define before callbacks by @ebrahimradi in #192
  • Add publishing/consuming events by @mateusjunges in #193
  • Send throwable info to DLQ by @mateusjunges in #194
  • Add the ability to use Kafka transactional producers by @mateusjunges in #223
  • Partition assignment by @mateusjunges in #234
  • Document subscribing to topics using regex by @mateusjunges in #239
  • Passthru missing methods on KafkaFake for macro accessibility by @mateusjunges in [#246]#246 and (#250)
  • Allow to uniquely identify messages by @mateusjunges in #244
  • Update CI to run without docker on Github CI by @mateusjunges in #254
  • Drop support for Laravel 9 by @mateusjunges in #255
  • Add support for Laravel 11 by @mateusjunges in #257
  • Improve producer performance by reducing flush calls by @mateusjunges in #252
  • Allow to test macroed consumers by @mateusjunges in #267
  • Install a signal handler for SIGINT (cmd/ctrl + c) by @mateusjunges
  • Fix install issues when using laravel v1.13.x by @mateusjunges
  • Add timeout feature for consumers by @mihaileu in #233
  • Remove internal annotation from interface by @mateusjunges
  • Fixed default securityProtocol config by @SergkeiM in #215
  • Make Kafka macroable by @lentex in #221
  • Update package dependencies by @mateusjunges
  • Update README.md to link to the 1.13 documentation page by @tavsec in #212
  • Fix auto commit config by @ebrahimradi in #203
  • Add the ability to change the cache driver by @BBonnet22 in #199
  • Fix consumer auto commit creating wrong committer by @mateusjunges on #186
  • Fix assertPublishedOnTimes to be used with batch messages - Fixes #179 by @mateusjunges on #180
  • Fix contracts marked as internal (Fixes #178)
  • Drop support for older versions of rdkafka by @mateusjunges
  • Fix bug when sending message to DLQ (allow to send message key) by @ebrahimradi in #175
  • Allow to send message headers to DLQ by @mateusjunges
  • Allow consumers to subscribe to SIGQUIT and SIGTERM signals by @mateusjunges on #172
  • Add onStopConsume method to the Consumer class
  • Add support for Laravel 10 by @mateusjunges and @mihaileu on #171
  • Report consumer exceptions by @behzadev on #169
  • Add Logger contract to allow users to implement their own Logger by @remarkusable in #165
  • Added support for PHP 8.2 by @mateusjunges in #159
  • Dropped support for ext-rdkafka v4.0 by @mateusjunges in #158
  • Dropped support for Laravel 8 by @mateusjunges in #158
  • Dropped support for PHP 8.0 by @mateusjunges in #159
  • Fixes kafka.php config file
  • Allow to configure sleep timeout when Producer is retrying flush by @mateusjunges in #156
  • Filter config options for consumer and producers by @mateusjunges in #151
  • Make Kafka class usable through interface injection by @mosharaf13 in #150
  • Fixes batch message processing by @mateusjunges in #143
  • Fix docs by @mateusjunges in #137
  • Add methods to configure config callbacks by @mateusjunges in #136
  • Allows to customize the Deserializer in kafka:consume Command by @cragonnyunt in #140

Fixes

  • Make consumer timeout configurable (fixes #132) by @mateusjunges in #134

Fixes

  • Fixes #126 using stub files, with #129 by @smortexa

Fixes

  • Fixes #126 with #128 by @mateusjunges
  • Add Restart command in #119 by @gasoju

Fixes

Fixes

Added

  • Resolve consumer instance using service container, by @cragonnyunt in #118

Added

  • Improved exception handling when a call to flush returns an error, by @mateusjunges in #112

Added

  • Message consumer Mock, by @gajosu in #107
  • Add Batch Support for Message consumer Mock, by @gajosu in #109
  • Added consumer contracts, by @mateusjunges in #110
  • Add docs for mocking consumers, by @mateusjunges in #111
  • Additional option to stop consumer after last message on topic, by @StounhandJ in #103

Fixed

  • Fix docker file by @gajosu in #108

Fixed

  • Fixes Sasl security protocol not being passed to config class. By @gajosu in #106
  • Link to the current version documentation fixed by @Elnadrion in #104
  • (Documentation) Added missing comas in the class params by @shanginn in #101
  • Fixed Passing null to parameter #1 ($string) of type string is deprecated by @elnadrion on #100

Fixed

  • Fixes error when using SASL_SSL with KafkaConsumerCommmand (issue #96, fixed with #3ea902d)

Fixed

  • Fix undefined offset 0 when trying to set Dead Letter Queues without subscribing to any kafka topics (#e06849c)

Fixed

  • Fixed Kafka Facade docblock on #93 by @nmfzone

Fixed

  • Fixed Kafka Facade docblock on #93 by @nmfzone

Fixed

  • Fix Json Serialize to not serialize the same message twice on #92 by @lukecurtis93

Added

  • Added support for batch producing and handling batch of messages by @vsvp21 in #86

Fixed

  • Return callback result for published messages filter when callback is provided on #87 by @nmfzone

Added

  • Added support for Laravel 9 in the tests pipeline on #88 by @mateusjunges

Fixed

  • Fix Json Serialize to not serialize the same message twice on #92 by @lukecurtis93

Fixed

  • Use correct consumer group id config key in consumer command

Fixed

  • Added missing auto.offset.reset to the consumer only options array.

Fixed

Fixed

Added

  • Add support for ext-rdkafka v6.0

Fixed

Changed

  • Removed Null Serializer
  • Message headers can't be null (#ea9d97f)

Fixed

  • Allow using sasl with lowercase config keys (#1cc7521)

Fixed

  • Included SASL on consumer config when applicable (#5c028bf)

Fixed

  • Fixed built in consumer command (#50)

Added

  • Added a withBrokers setter to the consumer api, allowing to set brokers on the run (#6a639ce)
  • Added boolean argument to withAutoCommit, which defaults to true (#3ffb226)
  • Added support for librdkafka v0.11.3 (#4600fdc)

Fixed

  • Cast auto_commit to string on initial consumer options (#f2a6c2b)

Changed

  • Renamed AvroencoderException to AvroSerializerException by @rtuin in #38
  • Extend all exceptions from LaravelKafkaException by @rtuin in #38

Added

  • Added message context to committers plus allow to use custom committers (#133a4bb)
  • Added retryable handler, allowing to retry message handling and block processing any other message. (#0f9aeee)

Fixed

  • Fixed composer.json dependencies. Improve installation process (#5981907)

Added

  • Allow createConsumer to use consumer group id from config (#559b467)
  • Improve consistency with serializers/deserializers naming (#b55772a)

Added

  • Added stopConsume method to allow consumer to be gracefully stopped (#db37381)
  • Reduced consumer timeout to a more realistic number, this allows signals to be caught every 2 seconds allowing graceful shutdown (#af1902f)

Fixed

  • Fixes exception thrown when kafka cannot complete a flush call. (#ddae8e3)

Fixed

  • Reworked testing framework to properly check what was dispatched (#ec8b3f6)
  • Fixed incorrect param ordering on test (#1022799)
  • Fixed KafkaFake to store published messages correctly (#4fe6e96)
  • Added tests to ensure count of published messages works (#7ea370f)

Fixed

  • Allow using SASL with lowercase config keys. (#ca542e21)

Fixed

  • Fix incorrect message published count (#06c3844)
  • Fixed exception thrown when kafka cannot complete a flush call (#9a1fcba)

Changed

  • Fix assertPublishedOnTimes to allow usage of callback if the message is null. (#c5b496)

Added

  • Added assertPublishedTimes and assertPublishedOnTimes methods (#a16a10d)

Changed

  • Make topic name optional. Add method to set topic name when using fake driver (#12dde5, #8f5b25, #f3c8b43, #fe19922)
  • Make broker parameter optional (#5625bef, #aa5596c, #c6ad0e9, #5117cd8)
  • Allow getTopicName to return null on KafkaMessage contract (#3e6289d)
  • Make topicName optional on Message::create() (#7213af9)
  • Fix publishOn and createConsumer method signatures on kafka facade (#eb66e8e)
  • Make message argument optional for assertPublished and assertPublishedOn methods (#9ec5eea)

Added

  • Added the security protocol to Sasl class. By default, its used SASL_PLAINTEXT(#f4e62d2)
  • Allow usage of SASL with Kafka producers (#04686cc)
  • Allow both SASL_PLAINTEXT and SASL_SSL security protocols with sasl. (#49e1112)

Added

  • Allow usage of custom options for producer config (#38ca04)

Added

  • Added validation to ensure a kafka consumer will not subscribe to a topic if it is already subscribed. (#f1ab25c)

Changed

  • Make $topics parameter optional on Kafka::createConsumer method. (#ef7a1a8)

Fixed

  • Fixed documentation about message handlers (#c375e10)
  • Fixed tests to test a message can be consumed using message handlers

Added

  • Added option to use custom serializers/deserializers with Kafka(#5)
  • Added default AVRO, Json and Null serializers/deserializers (#5)
  • Message handlers now receives a Junges\Kafka\Contracts\KafkaConsumerMessage instance, instead of RdKafka\Message directly.

Changed

  • Junges\Kafka\Message class namespace changed to Junges\Kafka\Message\Message
  • Method withMessageKey renamed to withBodyKey, on Junges\Kafka\Message\Message and Junges\Kafka\Producers\ProducerBuilder classes. (b41c310)

Added

  • Add documentation to the config file
  • Add tag to publish config file

Fixed

  • Fix documentation typos #2
  • Fix installation docs
  • Fixed argument for assertPublished, used to perform assertions over published messages
  • Add testing documentation

2021-09-12 v1.0.0

  • Initial release