feat(localdb): LWW applier (hlc+node_id tie-break, applying guard, dead-letter, atomic watermark)

Claude-Session: https://claude.ai/code/session_01BL2Vu1ESDQ9SCN4gVKkdts
This commit is contained in:
Joseph Doherty
2026-07-17 22:03:24 -04:00
parent 3cf8cabaf9
commit d7cbdce65c
5 changed files with 476 additions and 1 deletions
@@ -0,0 +1,15 @@
namespace ZB.MOM.WW.LocalDb.Replication;
/// <summary>
/// Thrown when a peer sends replication data whose schema this node cannot honor: an oplog entry
/// for a table not registered for replication here. Unlike a poison entry (dead-lettered per-row),
/// this is a protocol violation between the two nodes' registered schemas, so the whole batch is
/// rejected before any of it is applied. Task 10 reuses it to fail the handshake closed.
/// </summary>
public sealed class LocalDbSchemaMismatchException : Exception
{
public LocalDbSchemaMismatchException(string message) : base(message) { }
public LocalDbSchemaMismatchException(string message, Exception innerException)
: base(message, innerException) { }
}