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
52
53
54
55
56
57
58
//! Topic write-freeze registry entries, replicated through the raft quorum
//! with `MetadataRecord::V1TopicFreeze`.
//!
//! A freeze is a cluster state in which a topic stays readable and stays
//! replicated, but the broker refuses every append that puts new
//! externally-authored data into its log. Incident response, migrations, and
//! disaster-recovery promotion all need that state, and an ACL edit cannot
//! express it.
//!
//! The record stays pure data. The produce-path gate and the signature checks
//! live in `krabka-broker`, and the resolution index lives on
//! [`MetadataImage::topic_freeze`](crate::MetadataImage::topic_freeze).
use ;
use Uuid;
use cratePatternType;
/// One entry in the write-freeze registry.
///
/// The entry is authoritative for its `(pattern_type, scope)` key: a later
/// record with the same key replaces the earlier one. [`Self::frozen`] is the
/// removal sentinel, in the same shape as `FeatureLevelRecord.level == 0`, so
/// a thaw stays attributed in the raft log rather than vanishing as a
/// tombstone.