shibuya-kafka-adapter 0.8.0.1 → 0.9.0.0
raw patch · 3 files changed
+26/−5 lines, 3 filesdep ~shibuya-corePVP ok
version bump matches the API change (PVP)
Dependency ranges changed: shibuya-core
API changes (from Hackage documentation)
Files
- CHANGELOG.md +20/−0
- shibuya-kafka-adapter.cabal +3/−3
- src/Shibuya/Adapter/Kafka/Internal.hs +3/−2
CHANGELOG.md view
@@ -1,5 +1,25 @@ # Changelog +## 0.9.0.0 — 2026-08-10++### Breaking Changes++- Require `shibuya-core ^>=0.9.0.0`. The upstream major bump adds the+ `DeadLetterReason.ApplicationFailure` constructor and the total+ `deadLetterReasonCode`, `deadLetterReasonDetail`, and+ `renderDeadLetterReason` projections. The adapter itself needed no code+ change for the new constructor, but consumers are forced onto the new+ `shibuya-core` major and must review their own `DeadLetterReason` matches.+- The `AckDeadLetter` stderr warning now renders the reason with+ `renderDeadLetterReason` instead of derived `Show`. Application failures now+ log as `reason=my.app.code: detail` rather than+ `reason=ApplicationFailure (DeadLetterCode "my.app.code") "detail"`, matching+ the canonical rendering `shibuya-pgmq-adapter` writes to its DLQ payloads.+ The `[shibuya-kafka-adapter] WARNING: dead-lettered message DROPPED` prefix+ and the offset-acknowledgement semantics are unchanged.+- Keep the example and benchmark packages on the same `shibuya-core` bound and+ repo version line.+ ## 0.8.0.1 — 2026-07-05 ### Other Changes
shibuya-kafka-adapter.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.12 name: shibuya-kafka-adapter-version: 0.8.0.1+version: 0.9.0.0 synopsis: Kafka adapter for the Shibuya queue processing framework description: A Shibuya adapter that integrates with Apache Kafka via kafka-effectful@@ -61,7 +61,7 @@ , hw-kafka-client >=5.3 && <6 , hw-kafka-streamly ^>=0.2 , kafka-effectful ^>=0.3.0.0- , shibuya-core ^>=0.8.0.1+ , shibuya-core ^>=0.9.0.0 , stm ^>=2.5 , streamly ^>=0.11 , streamly-core ^>=0.3@@ -109,7 +109,7 @@ , kafka-effectful , process , random- , shibuya-core ^>=0.8.0.1+ , shibuya-core ^>=0.9.0.0 , shibuya-kafka-adapter , stm , streamly
src/Shibuya/Adapter/Kafka/Internal.hs view
@@ -28,6 +28,7 @@ import Data.IORef (IORef, atomicModifyIORef', newIORef, readIORef) import Data.Map.Strict (Map) import Data.Map.Strict qualified as Map+import Data.Text qualified as Text import Data.Time.Clock (NominalDiffTime) import Effectful (Eff, IOE, (:>)) import Effectful qualified@@ -45,7 +46,7 @@ import Kafka.Types (KafkaError, PartitionId, Timeout (..), TopicName) import Shibuya.Adapter.Kafka.Config (KafkaAdapterConfig (..)) import Shibuya.Adapter.Kafka.Convert (consumerRecordToEnvelope)-import Shibuya.Core.Ack (AckDecision (..), RetryDelay (..))+import Shibuya.Core.Ack (AckDecision (..), RetryDelay (..), renderDeadLetterReason) import Shibuya.Core.AckHandle (AckHandle (..)) import Shibuya.Core.Ingested (Ingested) import Shibuya.Core.Ingested qualified as Core@@ -207,7 +208,7 @@ "[shibuya-kafka-adapter] WARNING: dead-lettered message DROPPED (no DLQ producer): " <> show (cr.crTopic, cr.crPartition, cr.crOffset) <> " reason="- <> show reason+ <> Text.unpack (renderDeadLetterReason reason) ackAttempt state (storeGuarded state cr) AckHalt _ -> ackAttempt state (withConsumerLock state (pausePartitions [(cr.crTopic, cr.crPartition)]))