# Changelog

## [v1.1.0](https://github.com/RegioHelden/django-kafka/tree/v1.1.0) (2026-02-25)

[Full Changelog](https://github.com/RegioHelden/django-kafka/compare/v1.0.1...v1.1.0)

**Implemented enhancements:**

- fix: prevent duplicate deletion events when using kafka\_skip for deletes, refs \#19 [\#228](https://github.com/RegioHelden/django-kafka/pull/228) (@stefan-cardnell-rh)
- fix: add status list filter for WaitingMessageAdmin, refs \#184 [\#226](https://github.com/RegioHelden/django-kafka/pull/226) (@stefan-cardnell-rh)
- Update ruff to 0.15.2 [\#225](https://github.com/RegioHelden/django-kafka/pull/225) (@regiohelden-dev)
- chore\(deps\): update dependency ruff to v0.15.2 [\#224](https://github.com/RegioHelden/django-kafka/pull/224) (@renovate[bot])
- Update dependency psycopg to v3.3.3 [\#223](https://github.com/RegioHelden/django-kafka/pull/223) (@renovate[bot])
- Update uv to 0.10.4 [\#222](https://github.com/RegioHelden/django-kafka/pull/222) (@regiohelden-dev)
- Update ruff to 0.15.1, ty to 0.0.17, ty VSCode to 2026.14.0 and uv to 0.10.2 [\#221](https://github.com/RegioHelden/django-kafka/pull/221) (@regiohelden-dev)
- Update dependency ruff to v0.15.1 [\#220](https://github.com/RegioHelden/django-kafka/pull/220) (@renovate[bot])
- Update ruff to 0.15.0, ruff VSCode to 2026.36.0, ty to 0.0.15, ty VSCode to 2026.10.0 and uv to 0.10.0 [\#219](https://github.com/RegioHelden/django-kafka/pull/219) (@regiohelden-dev)
- Update dependency setuptools to 82 [\#218](https://github.com/RegioHelden/django-kafka/pull/218) (@renovate[bot])
- Update dependency faker to 40.4.0 [\#216](https://github.com/RegioHelden/django-kafka/pull/216) (@renovate[bot])
- Update uv to 0.9.29 [\#215](https://github.com/RegioHelden/django-kafka/pull/215) (@regiohelden-dev)
- Update dependency ruff to 0.15.0 [\#214](https://github.com/RegioHelden/django-kafka/pull/214) (@renovate[bot])
- Update uv to 0.9.28 [\#212](https://github.com/RegioHelden/django-kafka/pull/212) (@regiohelden-dev)
- Update ty to 0.0.14 and ty VSCode extension to 2026.8.0 [\#211](https://github.com/RegioHelden/django-kafka/pull/211) (@regiohelden-dev)
- Update VSCode extensions, enable renovate for local requirements [\#210](https://github.com/RegioHelden/django-kafka/pull/210) (@regiohelden-dev)
- Align postgresql credentials with other db vendors in dev environment [\#209](https://github.com/RegioHelden/django-kafka/pull/209) (@regiohelden-dev)
- Update VSCode feature common-utils to 2.5.6 and git to 1.3.5, ruff to 0.14.14 and uv to 0.9.27 [\#208](https://github.com/RegioHelden/django-kafka/pull/208) (@regiohelden-dev)
- Update PostgreSQL in dev environment to 18 [\#207](https://github.com/RegioHelden/django-kafka/pull/207) (@regiohelden-dev)
- Update ty to 0.0.13 and ty VSCode extension to 2026-6-0 [\#206](https://github.com/RegioHelden/django-kafka/pull/206) (@regiohelden-dev)
- Update ty VSCode extension to 2026.4.0 [\#205](https://github.com/RegioHelden/django-kafka/pull/205) (@regiohelden-dev)
- Switch to non-slim Debian image to make VSCode features work [\#204](https://github.com/RegioHelden/django-kafka/pull/204) (@regiohelden-dev)

**Merged pull requests:**

- chore\(deps\): update dependency django to v6.0.2 \[security\] [\#213](https://github.com/RegioHelden/django-kafka/pull/213) (@renovate[bot])

## [v1.0.1](https://github.com/RegioHelden/django-kafka/tree/v1.0.1) (2026-01-16)

[Full Changelog](https://github.com/RegioHelden/django-kafka/compare/v1.0.0...v1.0.1)

**Implemented enhancements:**

- Use ty instead of pylance as Python language server in VSCode [\#200](https://github.com/RegioHelden/django-kafka/pull/200) (@regiohelden-dev)
- Update ruff to 0.14.13 and uv to 0.9.26 [\#199](https://github.com/RegioHelden/django-kafka/pull/199) (@regiohelden-dev)
- Update ruff to 0.14.11 and ruff VSCode to 2026.34.0 [\#198](https://github.com/RegioHelden/django-kafka/pull/198) (@regiohelden-dev)

**Fixed bugs:**

- fix: make kafka\_skip uneditable in admin by default, refs \#201 [\#202](https://github.com/RegioHelden/django-kafka/pull/202) (@stefan-cardnell-rh)

## [v1.0.0](https://github.com/RegioHelden/django-kafka/tree/v1.0.0) (2026-01-07)

[Full Changelog](https://github.com/RegioHelden/django-kafka/compare/v0.15.2...v1.0.0)

**Breaking changes:**

- Add support for Django 6.0 release, add support for Python 3.14, remove support for EOL Django 5.1 [\#195](https://github.com/RegioHelden/django-kafka/pull/195) (@lociii)

**Implemented enhancements:**

- Update ruff to 0.14.10, update uv to 0.9.22, allow installation on Django 6.0 [\#196](https://github.com/RegioHelden/django-kafka/pull/196) (@regiohelden-dev)

## [v0.15.2](https://github.com/RegioHelden/django-kafka/tree/v0.15.2) (2025-12-22)

[Full Changelog](https://github.com/RegioHelden/django-kafka/compare/v0.15.1...v0.15.2)

**Fixed bugs:**

- fix: kafka\_consume is not working on mac/windows nor python 3.14 due to unsupported process start method, refs \#192 [\#193](https://github.com/RegioHelden/django-kafka/pull/193) (@stefan-cardnell-rh)

## [v0.15.1](https://github.com/RegioHelden/django-kafka/tree/v0.15.1) (2025-12-17)

[Full Changelog](https://github.com/RegioHelden/django-kafka/compare/v0.14.0...v0.15.1)

**Implemented enhancements:**

- Update Django dev dependency to 5.2.9 [\#189](https://github.com/RegioHelden/django-kafka/pull/189) (@dependabot[bot])
- Update ruff to 0.14.9, ruff VSCode to 2025.32.0, github-reusable-workflows to 2.8.0, download-artifact to 7, uv to 0.9.17 [\#187](https://github.com/RegioHelden/django-kafka/pull/187) (@regiohelden-dev)
- feat: add more fields for the WaitingMessage admin list display, refs \#184 [\#185](https://github.com/RegioHelden/django-kafka/pull/185) (@stefan-cardnell-rh)
- Force ruff version in VSCode, add modulesync managed linting workflow, update VSCode ruff integration to 2025.30.0 and uv to 0.9.13 [\#183](https://github.com/RegioHelden/django-kafka/pull/183) (@regiohelden-dev)
- Update github-reusable-workflows to 2.7.0 [\#182](https://github.com/RegioHelden/django-kafka/pull/182) (@renovate[bot])
- Update github-reusable-workflows to 2.7.0 and uv to 0.9.11 [\#181](https://github.com/RegioHelden/django-kafka/pull/181) (@regiohelden-dev)
- Update actions/checkout action to v6 [\#180](https://github.com/RegioHelden/django-kafka/pull/180) (@renovate[bot])
- Update uv to 0.9.10 [\#178](https://github.com/RegioHelden/django-kafka/pull/178) (@regiohelden-dev)
- Update uv to 0.9.9 [\#175](https://github.com/RegioHelden/django-kafka/pull/175) (@regiohelden-dev)
- Update uv to 0.9.7 [\#173](https://github.com/RegioHelden/django-kafka/pull/173) (@regiohelden-dev)
- Update uv to 0.9.6 [\#172](https://github.com/RegioHelden/django-kafka/pull/172) (@regiohelden-dev)
- Update RegioHelden/github-reusable-workflows to 2.6.0 [\#171](https://github.com/RegioHelden/django-kafka/pull/171) (@regiohelden-dev)
- Update RegioHelden/github-reusable-workflows to 2.6.0 [\#170](https://github.com/RegioHelden/django-kafka/pull/170) (@renovate[bot])
- Update actions/download-artifact to v5 and uv to 0.9.5 [\#169](https://github.com/RegioHelden/django-kafka/pull/169) (@regiohelden-dev)
- Update github-reusable-workflows to 2.5.0 [\#168](https://github.com/RegioHelden/django-kafka/pull/168) (@regiohelden-dev)
- chore\(deps\): update regiohelden/github-reusable-workflows action to v2.5.0 [\#167](https://github.com/RegioHelden/django-kafka/pull/167) (@renovate[bot])
- Update ruff-vscode to 2025.28.0 and uv to 0.9.2 [\#166](https://github.com/RegioHelden/django-kafka/pull/166) (@regiohelden-dev)
- Update setup-uv action to v7 [\#165](https://github.com/RegioHelden/django-kafka/pull/165) (@regiohelden-dev)
- chore\(deps\): update astral-sh/setup-uv action to v7 [\#164](https://github.com/RegioHelden/django-kafka/pull/164) (@renovate[bot])
- chore\(deps\): bump django from 5.2.6 to 5.2.7 [\#163](https://github.com/RegioHelden/django-kafka/pull/163) (@dependabot[bot])
- chore\(deps\): update postgres docker tag to v18 [\#162](https://github.com/RegioHelden/django-kafka/pull/162) (@renovate[bot])
- Update uv to 0.8.22 [\#161](https://github.com/RegioHelden/django-kafka/pull/161) (@regiohelden-dev)
- Fix renovate json config [\#160](https://github.com/RegioHelden/django-kafka/pull/160) (@regiohelden-dev)
- Update uv to 0.8.20, fix renovate config for modulesync managed workflow files [\#158](https://github.com/RegioHelden/django-kafka/pull/158) (@regiohelden-dev)
- chore\(deps\): update astral-sh/setup-uv action to v6 [\#157](https://github.com/RegioHelden/django-kafka/pull/157) (@renovate[bot])
- chore\(deps\): update actions/setup-python action to v6 [\#156](https://github.com/RegioHelden/django-kafka/pull/156) (@renovate[bot])
- chore\(deps\): update actions/checkout action to v5 - autoclosed [\#155](https://github.com/RegioHelden/django-kafka/pull/155) (@renovate[bot])
- chore\(deps\): update regiohelden/github-reusable-workflows action to v2.4.0 [\#154](https://github.com/RegioHelden/django-kafka/pull/154) (@renovate[bot])
- chore\(deps\): update dependency python to v3.13.7 [\#153](https://github.com/RegioHelden/django-kafka/pull/153) (@renovate[bot])
- chore\(deps\): pin dependency python to 3.12.11 [\#151](https://github.com/RegioHelden/django-kafka/pull/151) (@renovate[bot])
- Update uv to 0.8.18 [\#150](https://github.com/RegioHelden/django-kafka/pull/150) (@regiohelden-dev)
- Use renovate to keep custom workflow.yaml up to date [\#148](https://github.com/RegioHelden/django-kafka/pull/148) (@regiohelden-dev)
- Update vscode-ruff to 2025.26.0 [\#147](https://github.com/RegioHelden/django-kafka/pull/147) (@regiohelden-dev)
- Update uv to 0.8.17 [\#146](https://github.com/RegioHelden/django-kafka/pull/146) (@regiohelden-dev)
- chore\(deps\): bump django from 5.2.4 to 5.2.6 [\#145](https://github.com/RegioHelden/django-kafka/pull/145) (@dependabot[bot])

**Fixed bugs:**

- Make management command help texts work again [\#179](https://github.com/RegioHelden/django-kafka/pull/179) (@lociii)
- Update dev env Django to 5.2.8 [\#176](https://github.com/RegioHelden/django-kafka/pull/176) (@dependabot[bot])

## [v0.14.0](https://github.com/RegioHelden/django-kafka/tree/v0.14.0) (2025-09-09)

[Full Changelog](https://github.com/RegioHelden/django-kafka/compare/v0.13.0...v0.14.0)

**Implemented enhancements:**

- feat: implement warm shutdown of the kafka consumers. [\#142](https://github.com/RegioHelden/django-kafka/pull/142) (@bodja)
- Update reusable-workflows to 2.4.0 and setup-python to 6 [\#141](https://github.com/RegioHelden/django-kafka/pull/141) (@regiohelden-dev)
- Update uv to 0.8.15 [\#140](https://github.com/RegioHelden/django-kafka/pull/140) (@regiohelden-dev)
- Update uv to 0.8.14 [\#139](https://github.com/RegioHelden/django-kafka/pull/139) (@regiohelden-dev)

## [v0.13.0](https://github.com/RegioHelden/django-kafka/tree/v0.13.0) (2025-08-27)

[Full Changelog](https://github.com/RegioHelden/django-kafka/compare/v0.12.0...v0.13.0)

**Implemented enhancements:**

- feat: add TopicReproducer for debezium source connector message augmentation, refs \#136 [\#137](https://github.com/RegioHelden/django-kafka/pull/137) (@stefan-cardnell-rh)
- Update uv to 0.8.13 [\#135](https://github.com/RegioHelden/django-kafka/pull/135) (@regiohelden-dev)
- Update uv to 0.8.12 and reusable workflows to 2.3.0 [\#134](https://github.com/RegioHelden/django-kafka/pull/134) (@regiohelden-dev)
- Update uv to 0.8.3 [\#133](https://github.com/RegioHelden/django-kafka/pull/133) (@regiohelden-dev)
- Update uv to 0.8.2 [\#132](https://github.com/RegioHelden/django-kafka/pull/132) (@regiohelden-dev)
- Update uv to 0.8.0 [\#131](https://github.com/RegioHelden/django-kafka/pull/131) (@regiohelden-dev)

## [v0.12.0](https://github.com/RegioHelden/django-kafka/tree/v0.12.0) (2025-07-17)

[Full Changelog](https://github.com/RegioHelden/django-kafka/compare/v0.11.1...v0.12.0)

**Implemented enhancements:**

- feat: improve debug logging, refs \#128 [\#129](https://github.com/RegioHelden/django-kafka/pull/129) (@stefan-cardnell-rh)
- Set dependencies in sync config for modulesync to pick them up [\#126](https://github.com/RegioHelden/django-kafka/pull/126) (@lociii)
- Require postgres container from modulesync [\#124](https://github.com/RegioHelden/django-kafka/pull/124) (@lociii)
- Update test dependencies [\#123](https://github.com/RegioHelden/django-kafka/pull/123) (@lociii)

**Merged pull requests:**

- Update uv to 0.7.21 [\#127](https://github.com/RegioHelden/django-kafka/pull/127) (@regiohelden-dev)

## [v0.11.1](https://github.com/RegioHelden/django-kafka/tree/v0.11.1) (2025-07-08)

[Full Changelog](https://github.com/RegioHelden/django-kafka/compare/v0.11.0...v0.11.1)

**Fixed bugs:**

- fix: `KeyOffsetTrackerTopic.consume` returns proper value now. [\#120](https://github.com/RegioHelden/django-kafka/pull/120) (@bodja)

## [v0.11.0](https://github.com/RegioHelden/django-kafka/tree/v0.11.0) (2025-07-07)

[Full Changelog](https://github.com/RegioHelden/django-kafka/compare/v0.10.0...v0.11.0)

**Implemented enhancements:**

- update django-temporalio dependency version [\#117](https://github.com/RegioHelden/django-kafka/pull/117) (@krayevidi)

## [v0.10.0](https://github.com/RegioHelden/django-kafka/tree/v0.10.0) (2025-07-04)

[Full Changelog](https://github.com/RegioHelden/django-kafka/compare/v0.9.0...v0.10.0)

**Implemented enhancements:**

- feat: implement relations resolver. [\#109](https://github.com/RegioHelden/django-kafka/pull/109) (@bodja)
- Update reusable workflows [\#104](https://github.com/RegioHelden/django-kafka/pull/104) (@lociii)
- chore\(deps\): bump setuptools from 78.1.0 to 78.1.1 [\#97](https://github.com/RegioHelden/django-kafka/pull/97) (@dependabot[bot])

**Fixed bugs:**

- fix: `ModelMessageProcessor._aget_missing_relation` wrong return value. [\#115](https://github.com/RegioHelden/django-kafka/pull/115) (@bodja)

**Merged pull requests:**

- Update uv to 0.7.19 [\#114](https://github.com/RegioHelden/django-kafka/pull/114) (@regiohelden-dev)
- Update uv to 0.7.18 [\#113](https://github.com/RegioHelden/django-kafka/pull/113) (@regiohelden-dev)
- Update uv to 0.7.17 [\#108](https://github.com/RegioHelden/django-kafka/pull/108) (@regiohelden-dev)
- Update uv to 0.7.15 [\#107](https://github.com/RegioHelden/django-kafka/pull/107) (@regiohelden-dev)
- Updates GitHub reusable workflows to 2.2.4 [\#106](https://github.com/RegioHelden/django-kafka/pull/106) (@regiohelden-dev)
- Update uv to 0.7.14 and vscode ruff to 2025.24.0 [\#105](https://github.com/RegioHelden/django-kafka/pull/105) (@regiohelden-dev)
- Update uv to 0.7.13 [\#102](https://github.com/RegioHelden/django-kafka/pull/102) (@regiohelden-dev)
- Update uv to 0.7.12 [\#101](https://github.com/RegioHelden/django-kafka/pull/101) (@regiohelden-dev)
- Update uv to 0.7.11 [\#100](https://github.com/RegioHelden/django-kafka/pull/100) (@regiohelden-dev)
- Update uv to 0.7.8 [\#98](https://github.com/RegioHelden/django-kafka/pull/98) (@regiohelden-dev)
- Update uv to 0.7.7 [\#96](https://github.com/RegioHelden/django-kafka/pull/96) (@regiohelden-dev)
- Update uv to 0.7.6 [\#95](https://github.com/RegioHelden/django-kafka/pull/95) (@regiohelden-dev)
- Update uv to 0.7.5 [\#94](https://github.com/RegioHelden/django-kafka/pull/94) (@regiohelden-dev)

## [v0.9.0](https://github.com/RegioHelden/django-kafka/tree/v0.9.0) (2025-05-16)

[Full Changelog](https://github.com/RegioHelden/django-kafka/compare/v0.8.0...v0.9.0)

**Implemented enhancements:**

- fix: add retry setting to log every Nth attempt and add more info headers to dead letter topic, refs \#91 [\#92](https://github.com/RegioHelden/django-kafka/pull/92) (@stefan-cardnell-rh)

## [v0.8.0](https://github.com/RegioHelden/django-kafka/tree/v0.8.0) (2025-05-16)

[Full Changelog](https://github.com/RegioHelden/django-kafka/compare/v0.7.0...v0.8.0)

**Implemented enhancements:**

- Remove unused version from init file [\#85](https://github.com/RegioHelden/django-kafka/pull/85) (@lociii)

**Fixed bugs:**

- fix: resume partitions should resume at the paused offsets, refs \#88 [\#89](https://github.com/RegioHelden/django-kafka/pull/89) (@stefan-cardnell-rh)

**Merged pull requests:**

- Update uv to 0.7.4 [\#87](https://github.com/RegioHelden/django-kafka/pull/87) (@regiohelden-dev)
- Update uv to 0.7.3 [\#86](https://github.com/RegioHelden/django-kafka/pull/86) (@regiohelden-dev)
- Updates from modulesync [\#83](https://github.com/RegioHelden/django-kafka/pull/83) (@regiohelden-dev)

## [v0.7.0](https://github.com/RegioHelden/django-kafka/tree/v0.7.0) (2025-04-28)

[Full Changelog](https://github.com/RegioHelden/django-kafka/compare/v0.6.0...v0.7.0)

**Implemented enhancements:**

- Updates from modulesync [\#78](https://github.com/RegioHelden/django-kafka/pull/78) (@regiohelden-dev)
- Removed unused wsgi file from example app [\#67](https://github.com/RegioHelden/django-kafka/pull/67) (@lociii)

**Fixed bugs:**

- fix: fix start command of the "app" container. [\#68](https://github.com/RegioHelden/django-kafka/pull/68) (@bodja)

**Merged pull requests:**

- Updates from modulesync [\#81](https://github.com/RegioHelden/django-kafka/pull/81) (@regiohelden-dev)
- Updates from modulesync [\#80](https://github.com/RegioHelden/django-kafka/pull/80) (@regiohelden-dev)
- Updates from modulesync [\#77](https://github.com/RegioHelden/django-kafka/pull/77) (@regiohelden-dev)
- Updates from modulesync [\#76](https://github.com/RegioHelden/django-kafka/pull/76) (@regiohelden-dev)
- Updates from modulesync [\#75](https://github.com/RegioHelden/django-kafka/pull/75) (@regiohelden-dev)
- chore\(deps\): bump regiohelden/github-reusable-workflows from 2.0.0 to 2.1.0 [\#74](https://github.com/RegioHelden/django-kafka/pull/74) (@dependabot[bot])
- Updates from modulesync  [\#73](https://github.com/RegioHelden/django-kafka/pull/73) (@regiohelden-dev)
- Preparations for modulesync rollout [\#72](https://github.com/RegioHelden/django-kafka/pull/72) (@lociii)

## [v0.6.0](https://github.com/RegioHelden/django-kafka/tree/v0.6.0) (2025-04-14)

[Full Changelog](https://github.com/RegioHelden/django-kafka/compare/v0.5.18...v0.6.0)

**Implemented enhancements:**

- Test against Django 5.2 [\#64](https://github.com/RegioHelden/django-kafka/pull/64) (@lociii)
- Introduce reusable workflows [\#62](https://github.com/RegioHelden/django-kafka/pull/62) (@lociii)

**Merged pull requests:**

- feat: introduce "Topic key offset tracker" to resolve race condition … [\#59](https://github.com/RegioHelden/django-kafka/pull/59) (@bodja)

## 0.5.18 (2025-03-31)

**Fixed bugs:**

* Add "Topic key offset tracker" to resolve race condition or missing "relation" messages which are blocking consumers.

## 0.5.17 (2025-02-07)

**Fixed bugs:**

* Fix `Suppression.active` returning `True` even if suppress was not used.

**Implemented enhancements:**

* Update readme `ruff` section.

## 0.5.16 (2025-01-27)

**Implemented enhancements:**

* Integrate ruff and renovate.

## 0.5.15 (2025-02-06)

**Fixed bugs:**

* Suppress messages serialization if producer is suppressed.

## 0.5.14 (2025-01-27)

**Implemented enhancements:**

* Improve logging. Add consumer and topic names to the error message.

## 0.5.13 (2025-01-07)

**Implemented enhancements:**

* Upgrade `confluent-kafka` from `v2.6.2` to `v2.7.0` as recommended by authors.

## 0.5.12 (2024-12-20)

**Fixed bugs:**

* Fix dependency name rename `schema-registry` to `schemaregistry`.

## 0.5.11 (2024-12-20)

**Implemented enhancements:**

* Upgrade `confluent-kafka` which adds support of the list of urls to the `SchemaRegistryClient`.

## 0.5.10 (2024-11-29)

**Implemented enhancements:**

* `settings.RETRY_SETTINGS` takes a `dict` of kwargs to pass to `RetrySettings` class.
* Add `exclude_fields` option to `ModelTopicConsumer` to ignore message value fields.

## 0.5.9 (2024-11-28)

**Implemented enhancements:**

* Add `RETRY_SETTINGS` configuration setting.
* Add blocking retry behaviour and make it the default.

## 0.5.8 (2024-11-19)

**Implemented enhancements:**

* `ModelTopicConsumer.get_defaults` will skip fields not defined on the model.

## 0.5.7 (2024-11-18)

**Implemented enhancements:**

* `@substitute_error` now shows error message of the original error.

## 0.5.6 (2024-11-13)

**Fixed bugs:**

* Fix `DjangoKafka.run_consumers` failing when there are no consumers in the registry.

## 0.5.5 (2024-11-06)

**Implemented enhancements:**

* `./manage.py kafka_connect` command now will exit with `CommandError` in case of any exception.
* New `@substitute_error(errors: Iterable[Type[Exception]], substitution: Type[Exception])` decorator to substitute exceptions.

## 0.5.2 (2024-10-17)

**Implemented enhancements:**

* Added `producer.suppress` decorator.

**Breaking changes:**

* Renamed `KafkaSkipModel` to `KafkaConnectSkipModel`.
* Renamed `KafkaConnectSkipQueryset` to `KafkaConnectSkipQueryset`

## 0.5.1 (2024-10-16)

**Implemented enhancements:**

* `ModelTopicConsumer.sync` returns now the results of the `update_or_create` method.
* Add `days_from_epoch_to_date` function to convert `io.debezium.time.Date` to python `datetime.date`.

## 0.4.1 (2024-09-17)

**Implemented enhancements:**

* Support string-based delete keys in DbzModelTopicConsumer

## 0.4.0 (2024-09-17)

**Implemented enhancements:**

* Add ModelTopicConsumer and DbzModelTopicConsumer 

## 0.3.0 (2024-09-05)

**Implemented enhancements:**

* Add decorator for topic retry and dead letter topic, see `README.md`
* Separate `Topic` class in to `TopicProducer` and `TopicConsumer` classes.

## 0.2.0 (2024-09-04)

* Yanked


