src/MultiSiteManufacturing.Contracts/Protos/sites.proto
This page is part of the documentation for Orleans.Lattice 9.9.0 (release line 9.9), built 2026-10-04. It is also published as markdown, with every table and list, at src-multisitemanufacturing-contracts-protos-sites-proto.md, and llms.txt lists every page.Part of MultiSiteManufacturing source.
syntax = "proto3";
package multisitemfg.v1;
option csharp_namespace = "MultiSiteManufacturing.Contracts.V1";
import "common.proto";
import "google/protobuf/empty.proto";
service SiteControlService {
rpc ListSites (google.protobuf.Empty) returns (ListSitesResponse);
rpc ConfigureSite (ConfigureSiteRequest) returns (SiteState);
rpc WatchSites (google.protobuf.Empty) returns (stream SiteState);
rpc TriggerPreset (TriggerPresetRequest) returns (PresetResult);
rpc ListBackends (google.protobuf.Empty) returns (ListBackendsResponse);
rpc ConfigureBackend (ConfigureBackendRequest) returns (BackendChaosState);
}
enum ChaosPreset {
CHAOS_PRESET_UNSPECIFIED = 0;
CHAOS_PRESET_CLEAR_ALL = 1;
CHAOS_PRESET_TRANSOCEANIC_BACKHAUL_OUTAGE = 2;
CHAOS_PRESET_CUSTOMS_HOLD = 3;
CHAOS_PRESET_MRB_WEEKEND = 4;
CHAOS_PRESET_LATTICE_STORAGE_FLAKES = 5;
CHAOS_PRESET_BASELINE_REORDER_STORM = 6;
CHAOS_PRESET_CLUSTER_SPLIT = 7;
CHAOS_PRESET_REPLICATION_DISCONNECT = 8;
}
message SiteConfig {
bool is_paused = 1;
int32 delay_ms = 2;
bool reorder_enabled = 3;
}
message SiteState {
ProcessSite site = 1;
SiteConfig config = 2;
int32 pending_count = 3;
int64 admitted_count = 4;
}
message ListSitesResponse {
repeated SiteState sites = 1;
}
message ConfigureSiteRequest {
ProcessSite site = 1;
SiteConfig config = 2;
}
message TriggerPresetRequest {
ChaosPreset preset = 1;
}
message PresetResult {
repeated SiteState sites = 1;
}
// Backend chaos. Jitter and transient failures are applied to one
// backend at a time to surface baseline-vs-lattice divergence
// organically. Nominal config = all zero.
message BackendChaosConfig {
int32 jitter_ms_min = 1;
int32 jitter_ms_max = 2;
double transient_failure_rate = 3;
double write_amplification_rate = 4;
// When positive, the decorator buffers writes for this many ms then
// flushes them in shuffled order.
int32 reorder_window_ms = 5;
}
message BackendChaosState {
string name = 1;
BackendChaosConfig config = 2;
}
message ListBackendsResponse {
repeated BackendChaosState backends = 1;
}
message ConfigureBackendRequest {
string name = 1;
BackendChaosConfig config = 2;
}