use std::collections::HashMap;
#[derive(Debug, Clone, PartialEq)]
struct Event {
producer_id: String,
seq: u64,
payload: String,
}
struct IdempotentServer {
acked: HashMap<String, Option<u64>>,
events: Vec<Event>,
}
impl IdempotentServer {
fn new() -> Self {
Self {
acked: HashMap::new(),
events: Vec::new(),
}
}
fn upsert(&mut self, event: Event) -> bool {
let already = self.acked.get(&event.producer_id).copied().flatten();
match already {
Some(prev) if event.seq <= prev => {
false
}
_ => {
self.events.push(event.clone());
self.acked.insert(event.producer_id, Some(event.seq));
true
}
}
}
fn event_count(&self) -> usize {
self.events.len()
}
}
fn main() {
let mut server = IdempotentServer::new();
let producer = "host-a".to_string();
for seq in 0..5u64 {
let event = Event {
producer_id: producer.clone(),
seq,
payload: format!("payload-{seq}"),
};
assert!(server.upsert(event));
}
assert_eq!(server.event_count(), 5);
for seq in 3..5u64 {
let event = Event {
producer_id: producer.clone(),
seq,
payload: format!("payload-{seq}"),
};
let accepted = server.upsert(event);
assert!(
!accepted,
"duplicate upload of seq {seq} must be a no-op (server-side idempotency)"
);
}
assert_eq!(
server.event_count(),
5,
"duplicate uploads must NOT inflate the event log"
);
for seq in 5..10u64 {
let event = Event {
producer_id: producer.clone(),
seq,
payload: format!("payload-{seq}"),
};
assert!(server.upsert(event));
}
assert_eq!(server.event_count(), 10);
let producer_b = "host-b".to_string();
for seq in 0..3u64 {
let event = Event {
producer_id: producer_b.clone(),
seq,
payload: format!("b-payload-{seq}"),
};
assert!(server.upsert(event));
}
assert_eq!(server.event_count(), 13);
println!(
"Server holds {} events after duplicates and multi-producer traffic.",
server.event_count()
);
println!();
println!("The contract this demonstrates:");
println!(" - segment-buffer delivers at-least-once");
println!(" - duplicate uploads are NORMAL (crash recovery, transient failures)");
println!(" - idempotency on (producer_id, seq) is the SERVER's job");
println!(" - a UNIQUE(producer_id, seq) constraint makes the upsert safe");
println!();
println!("What segment-buffer does NOT do:");
println!(" - own a cursor file (REJECTED — see AGENTS.md § Layer split)");
println!(" - enforce idempotency (no server-side state in a local buffer)");
println!(" - track which events the cloud has ack'd (the server's concern)");
}