Skip to content

Commit 8906b52

Browse files
committed
🌒 Log strictly ordered mode from SMS
1 parent c9058f2 commit 8906b52

2 files changed

Lines changed: 11 additions & 0 deletions

File tree

‎lib/sequin/runtime/slot_message_store_state.ex‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ defmodule Sequin.Runtime.SlotMessageStore.State do
55
alias Sequin.Consumers.ConsumerEvent
66
alias Sequin.Consumers.ConsumerRecord
77
alias Sequin.Consumers.SinkConsumer
8+
alias Sequin.DebouncedLogger
89
alias Sequin.Error
910
alias Sequin.Multiset
1011
alias Sequin.Replication
@@ -547,6 +548,14 @@ defmodule Sequin.Runtime.SlotMessageStore.State do
547548
{cdc_cursor_tuple, backfill_cursor_tuple, :prioritize_cdc} ->
548549
# if any cdc messages have a conflict with backfill groups, we immediately switch to non prioritized mode
549550
if message_has_backfill_group_conflict?(state, cdc_cursor_tuple) do
551+
DebouncedLogger.warning(
552+
"[SlotMessageStore] Message has backfill group conflict, switching to strictly ordered mode",
553+
%DebouncedLogger.Config{
554+
dedupe_key: {:message_group_conflict, state.consumer_id},
555+
debounce_interval_ms: to_timeout(second: 10)
556+
}
557+
)
558+
550559
stream_strictly_ordered(state, cdc_cursor_tuple, backfill_cursor_tuple)
551560
else
552561
next_message = Map.get(state.messages, cdc_cursor_tuple)

‎test/sequin/slot_message_store_state_test.exs‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -967,6 +967,7 @@ defmodule Sequin.Runtime.SlotMessageStoreStateTest do
967967
assert_state_audit_is_clean(state)
968968
end
969969

970+
@tag :capture_log
970971
test "CDC messages are NOT prioritized when group conflicts exist", %{state: state} do
971972
table_oid = 1
972973

@@ -1107,6 +1108,7 @@ defmodule Sequin.Runtime.SlotMessageStoreStateTest do
11071108
assert map_size(state.backfill_message_groups) == 0
11081109
end
11091110

1111+
@tag :capture_log
11101112
test "strict cursor tuple ordering is maintained within group IDs across CDC and backfill", %{state: state} do
11111113
table_oid = 1
11121114
group_id = "group1"

0 commit comments

Comments
 (0)