packages feed

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 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)]))