1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
use crateCodec;
use crateQueueTopology;
/// A logical message topic that binds a message type, its codec, and its
/// queue topology together.
///
/// Implement on a unit struct per topic. Prefer the `define_topic!` /
/// `define_sequenced_topic!` macros — they generate the `OnceLock` for the
/// static topology and default the codec to `JsonCodec`.
///
/// Hand-rolled `impl Topic for X` blocks must set `type Codec` explicitly;
/// associated type defaults are unstable, so there is no built-in fallback.
/// Extension trait for topics that require strict message ordering.
///
/// Messages sharing the same sequence key are consumed in strict order:
/// a message is only delivered after all preceding messages in the same
/// sequence have been successfully acked.
///
/// The failure behavior when a message in a sequence is permanently
/// rejected is configured via `SequenceFailure` in the topology.