diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5cb143c..3c4fed9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,14 @@
# Changelog
+## [4.0.0](https://github.com/ably/kafka-connect-ably/tree/v4.0.0) (2023-09-21)
+
+This is a major release and contains a number of breaking changes. Please see the [upgrade guide](UPDATING.md) for more information on how to upgrade from version 3.x.
+
+**Implemented enhancements:**
+
+- Stringify Kafka headers before send them to Ably [\#155](https://github.com/ably/kafka-connect-ably/pull/155)
+- Flatten Kafka headers in extras [\#155](https://github.com/ably/kafka-connect-ably/pull/155)
+
## [3.0.0](https://github.com/ably/kafka-connect-ably/tree/v3.0.0)
[Full Changelog](https://github.com/ably/kafka-connect-ably/compare/v2.1.4...v3.0.0)
diff --git a/UPDATING.md b/UPDATING.md
index 01b74b8..c189e0b 100644
--- a/UPDATING.md
+++ b/UPDATING.md
@@ -1,5 +1,12 @@
# Upgrade / Migration Guide
+## Version 3.x to 4.0
+
+There are two **breaking changes** to configuration in the Ably Connector v4.0.0. The summary below covers the main changes:
+
+* **Stringify Kafka headers before send to Ably**. All Kafka headers except `com.ably.extras.push` are now stringified using `String.valueOf` before being sent to Ably.
+* **Flatten Kafka headers**. Previously, Kafka headers were located in `extras.kafka.headers` on Ably messages. They are now located in `extras.headers`.
+
## Version 2.x to 3.0
There are several **breaking changes** to configuration in the Ably Connector v3.0.0, due to improvements made and
diff --git a/pom.xml b/pom.xml
index 3d53853..de59021 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
com.ably.kafka.connect
kafka-connect-ably
- 3.0.0
+ 4.0.0
jar