From 03276c80d4f8810890ac3ddb930b933ae53a7fc3 Mon Sep 17 00:00:00 2001 From: javbeltran_expedia Date: Fri, 17 Jul 2026 13:00:38 +0200 Subject: [PATCH 1/6] revert: change kafka listener hashing for ALTER_TABLE events (#133) This reverts the code changes from commit 5314cffd (#133). CHANGELOG.md is intentionally left unchanged. --- .../listener/KafkaMetaStoreEventListener.java | 22 ++++------- .../listener/MskMetaStoreEventListener.java | 39 ++++--------------- .../KafkaMetaStoreEventListenerTest.java | 6 +-- .../MskMetaStoreEventListenerTest.java | 38 ++---------------- 4 files changed, 20 insertions(+), 85 deletions(-) diff --git a/apiary-metastore-events/kafka-metastore-events/kafka-metastore-listener/src/main/java/com/expediagroup/apiary/extensions/events/metastore/kafka/listener/KafkaMetaStoreEventListener.java b/apiary-metastore-events/kafka-metastore-events/kafka-metastore-listener/src/main/java/com/expediagroup/apiary/extensions/events/metastore/kafka/listener/KafkaMetaStoreEventListener.java index df9be005..01b7c4bb 100644 --- a/apiary-metastore-events/kafka-metastore-events/kafka-metastore-listener/src/main/java/com/expediagroup/apiary/extensions/events/metastore/kafka/listener/KafkaMetaStoreEventListener.java +++ b/apiary-metastore-events/kafka-metastore-events/kafka-metastore-listener/src/main/java/com/expediagroup/apiary/extensions/events/metastore/kafka/listener/KafkaMetaStoreEventListener.java @@ -43,7 +43,6 @@ import com.google.common.annotations.VisibleForTesting; -import com.expediagroup.apiary.extensions.events.metastore.event.ApiaryAlterTableEvent; import com.expediagroup.apiary.extensions.events.metastore.event.ApiaryListenerEvent; import com.expediagroup.apiary.extensions.events.metastore.event.ApiaryListenerEventFactory; import com.expediagroup.apiary.extensions.events.metastore.io.MetaStoreEventSerDe; @@ -51,7 +50,6 @@ import com.expediagroup.apiary.extensions.events.metastore.kafka.messaging.KafkaMessageSender; public class KafkaMetaStoreEventListener extends MetaStoreEventListener { - private static final Logger log = LoggerFactory.getLogger(KafkaMetaStoreEventListener.class); private final MetaStoreEventSerDe eventSerDe; @@ -60,7 +58,7 @@ public class KafkaMetaStoreEventListener extends MetaStoreEventListener { public KafkaMetaStoreEventListener(Configuration config) { this(config, new ApiaryListenerEventFactory(), serDeForClassName(stringProperty(config, SERDE_CLASS)), - new KafkaMessageSender(config)); + new KafkaMessageSender(config)); } @VisibleForTesting @@ -76,19 +74,12 @@ public KafkaMetaStoreEventListener(Configuration config) { } private KafkaMessage withPayload(ApiaryListenerEvent event) { - String database = event.getDatabaseName(); - String table = event.getTableName(); - // Ensuring ALTER_TABLE events will use old table name for partition hashing - if (event instanceof ApiaryAlterTableEvent) { - database = ((ApiaryAlterTableEvent) event).getOldTable().getDbName(); - table = ((ApiaryAlterTableEvent) event).getOldTable().getTableName(); - } return KafkaMessage - .builder() - .database(database) - .table(table) - .payload(eventSerDe.marshal(event)) - .build(); + .builder() + .database(event.getDatabaseName()) + .table(event.getTableName()) + .payload(eventSerDe.marshal(event)) + .build(); } @Override @@ -187,4 +178,5 @@ public void onCreateFunction(CreateFunctionEvent fnEvent) {} @Override public void onDropFunction(DropFunctionEvent fnEvent) {} + } diff --git a/apiary-metastore-events/kafka-metastore-events/kafka-metastore-listener/src/main/java/com/expediagroup/apiary/extensions/events/metastore/kafka/listener/MskMetaStoreEventListener.java b/apiary-metastore-events/kafka-metastore-events/kafka-metastore-listener/src/main/java/com/expediagroup/apiary/extensions/events/metastore/kafka/listener/MskMetaStoreEventListener.java index 64cd66b9..aaf50311 100644 --- a/apiary-metastore-events/kafka-metastore-events/kafka-metastore-listener/src/main/java/com/expediagroup/apiary/extensions/events/metastore/kafka/listener/MskMetaStoreEventListener.java +++ b/apiary-metastore-events/kafka-metastore-events/kafka-metastore-listener/src/main/java/com/expediagroup/apiary/extensions/events/metastore/kafka/listener/MskMetaStoreEventListener.java @@ -22,28 +22,12 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hive.metastore.MetaStoreEventListener; -import org.apache.hadoop.hive.metastore.events.AddIndexEvent; -import org.apache.hadoop.hive.metastore.events.AddPartitionEvent; -import org.apache.hadoop.hive.metastore.events.AlterIndexEvent; -import org.apache.hadoop.hive.metastore.events.AlterPartitionEvent; -import org.apache.hadoop.hive.metastore.events.AlterTableEvent; -import org.apache.hadoop.hive.metastore.events.ConfigChangeEvent; -import org.apache.hadoop.hive.metastore.events.CreateDatabaseEvent; -import org.apache.hadoop.hive.metastore.events.CreateFunctionEvent; -import org.apache.hadoop.hive.metastore.events.CreateTableEvent; -import org.apache.hadoop.hive.metastore.events.DropDatabaseEvent; -import org.apache.hadoop.hive.metastore.events.DropFunctionEvent; -import org.apache.hadoop.hive.metastore.events.DropIndexEvent; -import org.apache.hadoop.hive.metastore.events.DropPartitionEvent; -import org.apache.hadoop.hive.metastore.events.DropTableEvent; -import org.apache.hadoop.hive.metastore.events.InsertEvent; -import org.apache.hadoop.hive.metastore.events.LoadPartitionDoneEvent; +import org.apache.hadoop.hive.metastore.events.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.common.annotations.VisibleForTesting; -import com.expediagroup.apiary.extensions.events.metastore.event.ApiaryAlterTableEvent; import com.expediagroup.apiary.extensions.events.metastore.event.ApiaryListenerEvent; import com.expediagroup.apiary.extensions.events.metastore.event.ApiaryListenerEventFactory; import com.expediagroup.apiary.extensions.events.metastore.io.MetaStoreEventSerDe; @@ -51,7 +35,6 @@ import com.expediagroup.apiary.extensions.events.metastore.kafka.messaging.MskMessageSender; public class MskMetaStoreEventListener extends MetaStoreEventListener { - private static final Logger log = LoggerFactory.getLogger(MskMetaStoreEventListener.class); private final MetaStoreEventSerDe eventSerDe; @@ -60,7 +43,7 @@ public class MskMetaStoreEventListener extends MetaStoreEventListener { public MskMetaStoreEventListener(Configuration config) { this(config, new ApiaryListenerEventFactory(), serDeForClassName(stringProperty(config, SERDE_CLASS)), - new MskMessageSender(config)); + new MskMessageSender(config)); } @VisibleForTesting @@ -76,19 +59,12 @@ public MskMetaStoreEventListener(Configuration config) { } private KafkaMessage withPayload(ApiaryListenerEvent event) { - String database = event.getDatabaseName(); - String table = event.getTableName(); - // Ensuring ALTER_TABLE events will use old table name for partition hashing - if (event instanceof ApiaryAlterTableEvent) { - database = ((ApiaryAlterTableEvent) event).getOldTable().getDbName(); - table = ((ApiaryAlterTableEvent) event).getOldTable().getTableName(); - } return KafkaMessage - .builder() - .database(database) - .table(table) - .payload(eventSerDe.marshal(event)) - .build(); + .builder() + .database(event.getDatabaseName()) + .table(event.getTableName()) + .payload(eventSerDe.marshal(event)) + .build(); } @Override @@ -187,4 +163,5 @@ public void onCreateFunction(CreateFunctionEvent fnEvent) {} @Override public void onDropFunction(DropFunctionEvent fnEvent) {} + } diff --git a/apiary-metastore-events/kafka-metastore-events/kafka-metastore-listener/src/test/java/com/expediagroup/apiary/extensions/events/metastore/kafka/listener/KafkaMetaStoreEventListenerTest.java b/apiary-metastore-events/kafka-metastore-events/kafka-metastore-listener/src/test/java/com/expediagroup/apiary/extensions/events/metastore/kafka/listener/KafkaMetaStoreEventListenerTest.java index 8d7a2371..683f5e56 100644 --- a/apiary-metastore-events/kafka-metastore-events/kafka-metastore-listener/src/test/java/com/expediagroup/apiary/extensions/events/metastore/kafka/listener/KafkaMetaStoreEventListenerTest.java +++ b/apiary-metastore-events/kafka-metastore-events/kafka-metastore-listener/src/test/java/com/expediagroup/apiary/extensions/events/metastore/kafka/listener/KafkaMetaStoreEventListenerTest.java @@ -22,7 +22,6 @@ import static org.mockito.Mockito.when; import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.hive.metastore.api.Table; import org.apache.hadoop.hive.metastore.events.AddIndexEvent; import org.apache.hadoop.hive.metastore.events.AddPartitionEvent; import org.apache.hadoop.hive.metastore.events.AlterIndexEvent; @@ -93,12 +92,8 @@ public void onCreateTable() { public void onAlterTable() { AlterTableEvent event = mock(AlterTableEvent.class); ApiaryAlterTableEvent apiaryEvent = mock(ApiaryAlterTableEvent.class); - Table oldTable = mock(Table.class); - when(apiaryEvent.getOldTable()).thenReturn(oldTable); when(apiaryEvent.getDatabaseName()).thenReturn(DATABASE); when(apiaryEvent.getTableName()).thenReturn(TABLE); - when(oldTable.getDbName()).thenReturn(DATABASE); - when(oldTable.getTableName()).thenReturn(TABLE); when(apiaryListenerEventFactory.create(event)).thenReturn(apiaryEvent); listener.onAlterTable(event); verify(kafkaMessageSender).send(any(KafkaMessage.class)); @@ -221,4 +216,5 @@ public void onDropFunction() { verify(kafkaMessageSender, never()).send(any(KafkaMessage.class)); verify(eventSerDe, never()).marshal(any(ApiaryListenerEvent.class)); } + } diff --git a/apiary-metastore-events/kafka-metastore-events/kafka-metastore-listener/src/test/java/com/expediagroup/apiary/extensions/events/metastore/kafka/listener/MskMetaStoreEventListenerTest.java b/apiary-metastore-events/kafka-metastore-events/kafka-metastore-listener/src/test/java/com/expediagroup/apiary/extensions/events/metastore/kafka/listener/MskMetaStoreEventListenerTest.java index cd730a6e..fe77b0a7 100644 --- a/apiary-metastore-events/kafka-metastore-events/kafka-metastore-listener/src/test/java/com/expediagroup/apiary/extensions/events/metastore/kafka/listener/MskMetaStoreEventListenerTest.java +++ b/apiary-metastore-events/kafka-metastore-events/kafka-metastore-listener/src/test/java/com/expediagroup/apiary/extensions/events/metastore/kafka/listener/MskMetaStoreEventListenerTest.java @@ -16,44 +16,17 @@ package com.expediagroup.apiary.extensions.events.metastore.kafka.listener; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.never; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; +import static org.mockito.Mockito.*; import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.hive.metastore.api.Table; -import org.apache.hadoop.hive.metastore.events.AddIndexEvent; -import org.apache.hadoop.hive.metastore.events.AddPartitionEvent; -import org.apache.hadoop.hive.metastore.events.AlterIndexEvent; -import org.apache.hadoop.hive.metastore.events.AlterPartitionEvent; -import org.apache.hadoop.hive.metastore.events.AlterTableEvent; -import org.apache.hadoop.hive.metastore.events.ConfigChangeEvent; -import org.apache.hadoop.hive.metastore.events.CreateDatabaseEvent; -import org.apache.hadoop.hive.metastore.events.CreateFunctionEvent; -import org.apache.hadoop.hive.metastore.events.CreateTableEvent; -import org.apache.hadoop.hive.metastore.events.DropDatabaseEvent; -import org.apache.hadoop.hive.metastore.events.DropFunctionEvent; -import org.apache.hadoop.hive.metastore.events.DropIndexEvent; -import org.apache.hadoop.hive.metastore.events.DropPartitionEvent; -import org.apache.hadoop.hive.metastore.events.DropTableEvent; -import org.apache.hadoop.hive.metastore.events.InsertEvent; -import org.apache.hadoop.hive.metastore.events.LoadPartitionDoneEvent; +import org.apache.hadoop.hive.metastore.events.*; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; -import com.expediagroup.apiary.extensions.events.metastore.event.ApiaryAddPartitionEvent; -import com.expediagroup.apiary.extensions.events.metastore.event.ApiaryAlterPartitionEvent; -import com.expediagroup.apiary.extensions.events.metastore.event.ApiaryAlterTableEvent; -import com.expediagroup.apiary.extensions.events.metastore.event.ApiaryCreateTableEvent; -import com.expediagroup.apiary.extensions.events.metastore.event.ApiaryDropPartitionEvent; -import com.expediagroup.apiary.extensions.events.metastore.event.ApiaryDropTableEvent; -import com.expediagroup.apiary.extensions.events.metastore.event.ApiaryInsertEvent; -import com.expediagroup.apiary.extensions.events.metastore.event.ApiaryListenerEvent; -import com.expediagroup.apiary.extensions.events.metastore.event.ApiaryListenerEventFactory; +import com.expediagroup.apiary.extensions.events.metastore.event.*; import com.expediagroup.apiary.extensions.events.metastore.io.MetaStoreEventSerDe; import com.expediagroup.apiary.extensions.events.metastore.kafka.messaging.KafkaMessage; import com.expediagroup.apiary.extensions.events.metastore.kafka.messaging.MskMessageSender; @@ -93,12 +66,8 @@ public void onCreateTable() { public void onAlterTable() { AlterTableEvent event = mock(AlterTableEvent.class); ApiaryAlterTableEvent apiaryEvent = mock(ApiaryAlterTableEvent.class); - Table oldTable = mock(Table.class); - when(apiaryEvent.getOldTable()).thenReturn(oldTable); when(apiaryEvent.getDatabaseName()).thenReturn(DATABASE); when(apiaryEvent.getTableName()).thenReturn(TABLE); - when(oldTable.getDbName()).thenReturn(DATABASE); - when(oldTable.getTableName()).thenReturn(TABLE); when(apiaryListenerEventFactory.create(event)).thenReturn(apiaryEvent); listener.onAlterTable(event); verify(mskMessageSender).send(any(KafkaMessage.class)); @@ -221,4 +190,5 @@ public void onDropFunction() { verify(mskMessageSender, never()).send(any(KafkaMessage.class)); verify(eventSerDe, never()).marshal(any(ApiaryListenerEvent.class)); } + } From 45d75215e055cf385bf3f9df9cd3e62bdc041673 Mon Sep 17 00:00:00 2001 From: javbeltran_expedia Date: Fri, 17 Jul 2026 13:27:31 +0200 Subject: [PATCH 2/6] fix: replace wildcard imports and add CHANGELOG revert entry - Restore explicit imports (revert reintroduced wildcards) - Add CHANGELOG Reverted entry: ordering discrepancies in event flow --- CHANGELOG.md | 2 ++ .../listener/MskMetaStoreEventListener.java | 19 +++++++++-- .../MskMetaStoreEventListenerTest.java | 34 ++++++++++++++++--- 3 files changed, 49 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d75f04cb..179f3816 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a - `apiary-gluesync-listener`: fallback Glue operations (update-after-`AlreadyExistsException`, create-after-`EntityNotFoundException`) that previously escaped their catch blocks unhandled are now consistently caught, logged, and metered by the outer exception handler. ### Changed - Bump Micrometer from `1.9.9` to `1.14.14`. +### Reverted +- Revert `Change kafka listener hashing for ALTER_TABLE events (#133)`. `ALTER_TABLE` events now hash on the current table name again. The reverted change caused ordering discrepancies in the event flow. ## 8.1.18 - 2026-06-09 ### Fixed diff --git a/apiary-metastore-events/kafka-metastore-events/kafka-metastore-listener/src/main/java/com/expediagroup/apiary/extensions/events/metastore/kafka/listener/MskMetaStoreEventListener.java b/apiary-metastore-events/kafka-metastore-events/kafka-metastore-listener/src/main/java/com/expediagroup/apiary/extensions/events/metastore/kafka/listener/MskMetaStoreEventListener.java index aaf50311..15d7f8bb 100644 --- a/apiary-metastore-events/kafka-metastore-events/kafka-metastore-listener/src/main/java/com/expediagroup/apiary/extensions/events/metastore/kafka/listener/MskMetaStoreEventListener.java +++ b/apiary-metastore-events/kafka-metastore-events/kafka-metastore-listener/src/main/java/com/expediagroup/apiary/extensions/events/metastore/kafka/listener/MskMetaStoreEventListener.java @@ -1,5 +1,5 @@ /** - * Copyright (C) 2018-2025 Expedia, Inc. + * Copyright (C) 2018-2026 Expedia, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,7 +22,22 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hive.metastore.MetaStoreEventListener; -import org.apache.hadoop.hive.metastore.events.*; +import org.apache.hadoop.hive.metastore.events.AddIndexEvent; +import org.apache.hadoop.hive.metastore.events.AddPartitionEvent; +import org.apache.hadoop.hive.metastore.events.AlterIndexEvent; +import org.apache.hadoop.hive.metastore.events.AlterPartitionEvent; +import org.apache.hadoop.hive.metastore.events.AlterTableEvent; +import org.apache.hadoop.hive.metastore.events.ConfigChangeEvent; +import org.apache.hadoop.hive.metastore.events.CreateDatabaseEvent; +import org.apache.hadoop.hive.metastore.events.CreateFunctionEvent; +import org.apache.hadoop.hive.metastore.events.CreateTableEvent; +import org.apache.hadoop.hive.metastore.events.DropDatabaseEvent; +import org.apache.hadoop.hive.metastore.events.DropFunctionEvent; +import org.apache.hadoop.hive.metastore.events.DropIndexEvent; +import org.apache.hadoop.hive.metastore.events.DropPartitionEvent; +import org.apache.hadoop.hive.metastore.events.DropTableEvent; +import org.apache.hadoop.hive.metastore.events.InsertEvent; +import org.apache.hadoop.hive.metastore.events.LoadPartitionDoneEvent; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/apiary-metastore-events/kafka-metastore-events/kafka-metastore-listener/src/test/java/com/expediagroup/apiary/extensions/events/metastore/kafka/listener/MskMetaStoreEventListenerTest.java b/apiary-metastore-events/kafka-metastore-events/kafka-metastore-listener/src/test/java/com/expediagroup/apiary/extensions/events/metastore/kafka/listener/MskMetaStoreEventListenerTest.java index fe77b0a7..96e2ae1b 100644 --- a/apiary-metastore-events/kafka-metastore-events/kafka-metastore-listener/src/test/java/com/expediagroup/apiary/extensions/events/metastore/kafka/listener/MskMetaStoreEventListenerTest.java +++ b/apiary-metastore-events/kafka-metastore-events/kafka-metastore-listener/src/test/java/com/expediagroup/apiary/extensions/events/metastore/kafka/listener/MskMetaStoreEventListenerTest.java @@ -1,5 +1,5 @@ /** - * Copyright (C) 2018-2025 Expedia, Inc. + * Copyright (C) 2018-2026 Expedia, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,17 +16,43 @@ package com.expediagroup.apiary.extensions.events.metastore.kafka.listener; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.hive.metastore.events.*; +import org.apache.hadoop.hive.metastore.events.AddIndexEvent; +import org.apache.hadoop.hive.metastore.events.AddPartitionEvent; +import org.apache.hadoop.hive.metastore.events.AlterIndexEvent; +import org.apache.hadoop.hive.metastore.events.AlterPartitionEvent; +import org.apache.hadoop.hive.metastore.events.AlterTableEvent; +import org.apache.hadoop.hive.metastore.events.ConfigChangeEvent; +import org.apache.hadoop.hive.metastore.events.CreateDatabaseEvent; +import org.apache.hadoop.hive.metastore.events.CreateFunctionEvent; +import org.apache.hadoop.hive.metastore.events.CreateTableEvent; +import org.apache.hadoop.hive.metastore.events.DropDatabaseEvent; +import org.apache.hadoop.hive.metastore.events.DropFunctionEvent; +import org.apache.hadoop.hive.metastore.events.DropIndexEvent; +import org.apache.hadoop.hive.metastore.events.DropPartitionEvent; +import org.apache.hadoop.hive.metastore.events.DropTableEvent; +import org.apache.hadoop.hive.metastore.events.InsertEvent; +import org.apache.hadoop.hive.metastore.events.LoadPartitionDoneEvent; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; -import com.expediagroup.apiary.extensions.events.metastore.event.*; +import com.expediagroup.apiary.extensions.events.metastore.event.ApiaryAddPartitionEvent; +import com.expediagroup.apiary.extensions.events.metastore.event.ApiaryAlterPartitionEvent; +import com.expediagroup.apiary.extensions.events.metastore.event.ApiaryAlterTableEvent; +import com.expediagroup.apiary.extensions.events.metastore.event.ApiaryCreateTableEvent; +import com.expediagroup.apiary.extensions.events.metastore.event.ApiaryDropPartitionEvent; +import com.expediagroup.apiary.extensions.events.metastore.event.ApiaryDropTableEvent; +import com.expediagroup.apiary.extensions.events.metastore.event.ApiaryInsertEvent; +import com.expediagroup.apiary.extensions.events.metastore.event.ApiaryListenerEvent; +import com.expediagroup.apiary.extensions.events.metastore.event.ApiaryListenerEventFactory; import com.expediagroup.apiary.extensions.events.metastore.io.MetaStoreEventSerDe; import com.expediagroup.apiary.extensions.events.metastore.kafka.messaging.KafkaMessage; import com.expediagroup.apiary.extensions.events.metastore.kafka.messaging.MskMessageSender; From 9ac08d3a74da58412f7710325d86575144e6761b Mon Sep 17 00:00:00 2001 From: javbeltran_expedia Date: Fri, 17 Jul 2026 13:28:35 +0200 Subject: [PATCH 3/6] docs: move revert note to new 8.2.1 CHANGELOG section --- CHANGELOG.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 179f3816..c17439bb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). +## 8.2.1 - TBD +### Reverted +- Revert `Change kafka listener hashing for ALTER_TABLE events (#133)`. `ALTER_TABLE` events now hash on the current table name again. The reverted change caused ordering discrepancies in the event flow. + ## 8.2.0 - TBD ### Added - `apiary-gluesync-listener`: per-event observability via a new `glue_listener_event` Micrometer counter, tagged with `operation` (e.g. `create_table`), `result` (`success`, `failure`, `ignored`), and `outcome` (e.g. `created`, `updated`, `deleted`, `not_found`, `renamed`, exception class name). Covers all 8 HMS event handlers. A `glue_listener_table_rename_duration` timer is also recorded on every table rename. @@ -11,8 +15,6 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a - `apiary-gluesync-listener`: fallback Glue operations (update-after-`AlreadyExistsException`, create-after-`EntityNotFoundException`) that previously escaped their catch blocks unhandled are now consistently caught, logged, and metered by the outer exception handler. ### Changed - Bump Micrometer from `1.9.9` to `1.14.14`. -### Reverted -- Revert `Change kafka listener hashing for ALTER_TABLE events (#133)`. `ALTER_TABLE` events now hash on the current table name again. The reverted change caused ordering discrepancies in the event flow. ## 8.1.18 - 2026-06-09 ### Fixed From da0c52b72d3e27673fc8045a78114ce68171d2d0 Mon Sep 17 00:00:00 2001 From: javbeltran_expedia Date: Fri, 17 Jul 2026 13:28:54 +0200 Subject: [PATCH 4/6] docs: set 8.2.1 release date to 2026-07-17 --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c17439bb..b8011910 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -## 8.2.1 - TBD +## 8.2.1 - 2026-07-17 ### Reverted - Revert `Change kafka listener hashing for ALTER_TABLE events (#133)`. `ALTER_TABLE` events now hash on the current table name again. The reverted change caused ordering discrepancies in the event flow. From 36dc75f6ac37a8a991f36478192e26899df26e69 Mon Sep 17 00:00:00 2001 From: javbeltran_expedia Date: Fri, 17 Jul 2026 13:47:14 +0200 Subject: [PATCH 5/6] docs: set CHANGELOG version to 8.2.4 --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b8011910..b9dc4c5f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -## 8.2.1 - 2026-07-17 +## 8.2.4 - 2026-07-17 ### Reverted - Revert `Change kafka listener hashing for ALTER_TABLE events (#133)`. `ALTER_TABLE` events now hash on the current table name again. The reverted change caused ordering discrepancies in the event flow. From 365182bc7614e18e6fcc218899f617a249856ab8 Mon Sep 17 00:00:00 2001 From: javbeltran_expedia Date: Fri, 17 Jul 2026 13:49:14 +0200 Subject: [PATCH 6/6] docs: merge 8.2.0 TBD entries into 8.2.4 section --- CHANGELOG.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b9dc4c5f..39487abe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,10 +4,6 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). ## 8.2.4 - 2026-07-17 -### Reverted -- Revert `Change kafka listener hashing for ALTER_TABLE events (#133)`. `ALTER_TABLE` events now hash on the current table name again. The reverted change caused ordering discrepancies in the event flow. - -## 8.2.0 - TBD ### Added - `apiary-gluesync-listener`: per-event observability via a new `glue_listener_event` Micrometer counter, tagged with `operation` (e.g. `create_table`), `result` (`success`, `failure`, `ignored`), and `outcome` (e.g. `created`, `updated`, `deleted`, `not_found`, `renamed`, exception class name). Covers all 8 HMS event handlers. A `glue_listener_table_rename_duration` timer is also recorded on every table rename. - `kafka-metastore-receiver`: Kafka consumer metrics via Micrometer `KafkaClientMetrics`. Bind a registry at build time with `KafkaMessageReaderBuilder.withMeterRegistry(registry)`. @@ -15,6 +11,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a - `apiary-gluesync-listener`: fallback Glue operations (update-after-`AlreadyExistsException`, create-after-`EntityNotFoundException`) that previously escaped their catch blocks unhandled are now consistently caught, logged, and metered by the outer exception handler. ### Changed - Bump Micrometer from `1.9.9` to `1.14.14`. +### Reverted +- Revert `Change kafka listener hashing for ALTER_TABLE events (#133)`. `ALTER_TABLE` events now hash on the current table name again. The reverted change caused ordering discrepancies in the event flow. ## 8.1.18 - 2026-06-09 ### Fixed