jackdaw.admin/topics-ready? now returns false when a topic does not exist, instead of throwing an UnknownTopicOrPartitionException. Errors unrelated to the topic being unavailable are still propagated.- Kafka 4.x / Confluent Platform 8.x support. Upgraded
org.apache.kafka to 4.3.1 and the Confluent serializers/schema-registry client to 8.3.1. Adapts to the removal of KStream.branch/through/transform* (now built on split/process/processValues), StreamPartitioner.partition -> partitions, AdminClient.alterConfigs -> incrementalAlterConfigs, Duration-only Consumer.poll, the new StreamsUncaughtExceptionHandler, and the relocated org.apache.kafka.tools.StreamsResetter. The Docker test stack now runs Kafka 4.x in KRaft mode (no ZooKeeper). Closes #378. #384 - Migrated build tooling from Leiningen to
deps.edn/tools.build. Replaced project.clj with deps.edn + build.clj; example projects and CI updated accordingly. #384 - Breaking:
transform/transform-values (and their flat variants) no longer accept the deprecated Transformer/ValueTransformer types, which Kafka 4.x can no longer supply a processor context to. Supplier fns must return a Processor/FixedKeyProcessor (e.g. via transformer-with-ctx / value-transformer-with-ctx); supplying the old types now throws a clear error. #384 - Breaking:
flat-transform/flat-transform-values no longer flatten a returned collection into multiple output records. Under the Processor/FixedKeyProcessor API the output stream is formed by whatever the processor forwards via its context (.forward), so emitting zero, one, or many records per input is now the caller's responsibility. Code that previously relied on returning a sequence to fan out will silently produce a single record until updated to call .forward per output record. #384
- Support for Foreign Key joins #365 (Issue [#364])
- add manifold and keep aleph in dev dependencies #360. Users of test-machine will have to add aleph to the test deps in their app.
- v0.9.10 introduced some reflection warnings. Whilst harmless seeing
.deleteTopics appear in your logs at app startup is a little unsettling. #358 - fix to re-introduce correct handling of timestamped consumer records. Broke test asserting windowed results. #356
- Fix JSON_SR serde to correctly "Clojurize" deeply nested maps
- Trivial release to fix release tagging issue
- Trivial release to fix API publishing in cljdocs
- Fix project.edn repo typo
- Add clj-kondo and fix all lint warnings and errors #323
- Allow Kafka Schema registry library to create a client rather than do it in Jackdaw (this allows security properties to be recognised) #330
- Move away from deprecated class ConsumerRecordFactory (to prepare migration to Kafka Streams 3.2.0)
- More verbose avro serialization exception errors
- Move libraries overrides back to dependencies.
- Fixed CVE-2021-37137, CVE-2021-37136 and CVE-2021-36090.
- Fixed Circle CI build process.
This version has been tagged in the repo but unreleased due to the broken build process.
- Drop clj-time dependency.
- Added confluent schema registry support for JSON Schema.
- Removed dependency on deprecated
org.apache.kafka.streams.kstream.Serialized class. - Added simple helpers in lambdas for using transformers more easily in a stream. #305
- Added the
flatTransform and flatTransfromValues calls to the core streams interface. #305 - Aded a helper function to add KV state stores to a streams builder. #305
- Add KStream-KTable inner join.
- Update Kafka to 2.8.0 (confluent 6.1.1) #292
- Improve test-machine documentation #287
- Fix CI pipeline: add -repo to repo cache names to not match with deps cache #288
- Remove codecov #289
- Bump netty related packages to latest version (related to changes in
0.7.8 which fixes CVEs).
- Added support for kafka message headers to Test Machine
- Replaced deprecated methods in avro.clj with supported methods.
-
Fix ktable constructor to use supplied store-name
-
Bump clj-uuid version to 0.1.9
-
Minor update to fix harmless but distracting reflection warnings
- Moved dependency on kafka_2.11 into the dev profile
- Fixed bug in Avro deserialisation, when handling a union of enum types
- as-edn/as-json functions to convert between representations of avro
- Fixed bug in
map->ProducerRecord - Allow nullable
partition and timestamp in ->ProducerRecord (previously threw NPE) - Fixed union type serialisation when members have similar fields
- Fressian Serde via clojure.data.fressian #209
- Clearer error from the command runner #214
- Documentation about Jackdaw Admin API #211
- Upgraded in #217:
- Added functions to simplify querying the test machine journal (#215)
- Upgrade the test-runner (#184)
- Added support for user-provided parameters to reset-application-fixture (#177)
- Continuing refinement of examples (#191)
- Support for
.suppress (#23) - Support for group-options when creating rest-proxy client for the test-machine (#206)
- PR Template (#187)
- A new edn serde without the un-necessary newline (#190)
- Fail fast throwing an exception as soon as a command fails (#186)
- Throw an exception on unknown commands, useful to detect typos early (#182)
- Fixed add-key (part of publishing pipeline) (#181)
- Skip deploy_snapshots job for external contributors (#194)
- Only numbers should be coercable (#203)
- Small refactor to implementation of rest-proxy transport (#205)
- topics-ready? does not dereference the returned deferred (#193)
- Fix test machine status middleware (#157)
- Fix application reset fixture to use bootstrap servers form app-config (#157)
- Fix type-hint call to
KafkaAvroDeserializer.deseialize to remove warning (#157)
- Allow specification of :deserialization-properties (#157)
- Back-fill a few tests of jackdaw.client.partitioning (#165)
- Upgrade Clojure version to 1.10.1 (#159)
- Partitioner in test-machine write command updated to match streams (#139)
- Reformatted all the code using cljfmt (#173)
- Delete duplicated tests (#165)
- Documentation/Examples fixes (#166, #168)
- Do not assume result of executing command is a map (#164)
- Supply
key-serde as well as value-serde in aggregate methods (#172)
- Auto-coercion of clojure numbers if possible (#135)
- Added more explicit information about commit signing Contributing guide (#150)
- Merger instance required for session window aggregation (#142)
- Fixed mis-leading parameter names relating to global ktables (#147)
- Select matching record from union during serialization (#149)
- Fixed typo in one of the code examples in the streams guide (#151)
- Add Add
:do! and :inspect test commands (#141)
- Fix regression in multi-topic stream constructor (#143)
- Stop swallowing errors in test-machine (#144)
- Include kafka-streams-test-utils so users don't have to (#138)
- Add changelog and contributing files (#122)
- Add test-machine example to the word-count example application (#120)
- Add new arities for aggregate and reduce (#132)
- Add sign-off to contributing file (#123)
- Ensure user-supplied partitions are cast to
int before handing
them to the underlying kafka producer (#124) - Make the test for the rest-proxy transport use keywords to identify topics (#120)
- Resolve dependency conflict reported by lein deps :tree (#125)
- Fix a typo in the
service-ready? test fixture (#121) - Make sure mock dirver is closed after use (#128)
- Fix Jackdaw version for Word Count example (#131)
- Update changelog for 0.6.4 release (#124)
- Delete a couple of overly verbose logging statements (#124)
None
- Upgrade Kafka dependency to 2.2.0 (#123)
None
- Improvement and clarification of documentation (on-going) (#116, #117, #118)
- Support for including a literal avro schema in the topic definitions resolved by the default resolver (#109)
- Support for including a custom :partition-fn in kafka streams operations that write records (#103)
- Implement kibit recommendations (#118)
- Word-count example (#108)
- Log to file instead of stdout
- A few simplifications in the implementation
- In the streams mock driver, get-records now returns a vector of "datafied" producer-records rather than simply the k,v pairs (part of #103)
None
Can you improve this documentation? These fine people already did:
Andy Chambers, Gilles Philippart, Chris McDevitt, Alexander McKenna, Matt Ford, Charles Reese, Dave Martin, Francisco Viramontes, Anastasios Panourgias, prakashkillada-fc, Andrew Keedle, Andrea Crotti, Justin Glenn Smith, Sasha Gerrand, Trevor Rawlings, Bobby Calderwood, Rodrigo Gallinares, George Gayton, Ray McDermott, Alexander Popov, Ted Kassen, Alexis Lee, Simon Katz, nivekuil, Marco Chan & JPolEdit on GitHub