mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-09-04 23:27:09 +00:00
Make the first V2 core owner explicit in sw-block by freezing Phase 14 docs, mode/readiness/publication semantics, and bounded command emission rules. This turns accepted Phase 13 constraints into executable core behavior without overclaiming live runtime cutover. Made-with: Cursor
43 lines
1.0 KiB
Go
43 lines
1.0 KiB
Go
package replication
|
|
|
|
// Command is one side-effect-free decision emitted by the Phase 14 core skeleton.
|
|
// Adapters execute commands later; the core only decides them.
|
|
type Command interface {
|
|
commandName() string
|
|
}
|
|
|
|
type ApplyRoleCommand struct {
|
|
VolumeID string
|
|
Epoch uint64
|
|
Role VolumeRole
|
|
}
|
|
|
|
func (ApplyRoleCommand) commandName() string { return "apply_role" }
|
|
|
|
type StartReceiverCommand struct {
|
|
VolumeID string
|
|
}
|
|
|
|
func (StartReceiverCommand) commandName() string { return "start_receiver" }
|
|
|
|
type ConfigureShipperCommand struct {
|
|
VolumeID string
|
|
Replicas []ReplicaAssignment
|
|
}
|
|
|
|
func (ConfigureShipperCommand) commandName() string { return "configure_shipper" }
|
|
|
|
type InvalidateSessionCommand struct {
|
|
VolumeID string
|
|
Reason string
|
|
}
|
|
|
|
func (InvalidateSessionCommand) commandName() string { return "invalidate_session" }
|
|
|
|
type PublishProjectionCommand struct {
|
|
VolumeID string
|
|
Projection PublicationProjection
|
|
}
|
|
|
|
func (PublishProjectionCommand) commandName() string { return "publish_projection" }
|