Как реализовать ordering в distributed системе?

Senior
42 просмотров
AFK Offer AI

Несколько подходов в зависимости от требований. Single leader — все записи через один узел, он назначает порядок. Consensus (Raft) — узлы договариваются о порядке. Lamport timestamps — логические часы для causal ordering. Partition-based — ordering внутри partition (Kafka). В Go можно реализовать Raft через hashicorp/raft. Для большинства случаев достаточно ordering внутри entity (partition by user_id).

Следующий вопрос

Как работает runtime.KeepAlive и зачем нужен?