---
title: "src/MultiSiteManufacturing.Contracts/Protos/compliance.proto - MultiSiteManufacturing source"
url: "https://nsta1.github.io/Orleans.Lattice/samples/MultiSiteManufacturing/source/src-multisitemanufacturing-contracts-protos-compliance-proto.html"
source: "https://github.com/NSTA1/Orleans.Lattice/blob/release/9.9/samples/MultiSiteManufacturing/src/MultiSiteManufacturing.Contracts/Protos/compliance.proto"
documents: "Orleans.Lattice 9.9.0 (release line 9.9)"
built: "2026-10-04"
all-pages: "https://nsta1.github.io/Orleans.Lattice/llms.txt"
---
# src/MultiSiteManufacturing.Contracts/Protos/compliance.proto

Part of [MultiSiteManufacturing source](../source.md).

````protobuf
syntax = "proto3";

package multisitemfg.v1;

option csharp_namespace = "MultiSiteManufacturing.Contracts.V1";

import "common.proto";
import "google/protobuf/empty.proto";

service ComplianceService {
  rpc GetPartCompliance (GetPartComplianceRequest) returns (PartComplianceView);
  rpc WatchDivergence   (google.protobuf.Empty)    returns (stream DivergenceReport);
}

message GetPartComplianceRequest {
  string serial = 1;
}

message PartComplianceView {
  string serial = 1;
  ComplianceState baseline_state = 2;
  ComplianceState lattice_state = 3;
  bool diverges = 4;
}

message DivergenceReport {
  string serial = 1;
  ComplianceState baseline_state = 2;
  ComplianceState lattice_state = 3;
  // True when the two backends previously disagreed but have now
  // converged - lets subscribers drop a row from their divergence
  // feed instead of re-rendering a "resolved" state.
  bool resolved = 4;
}
````

Previous: [src/MultiSiteManufacturing.Contracts/Protos/common.proto](src-multisitemanufacturing-contracts-protos-common-proto.md). Next: [src/MultiSiteManufacturing.Contracts/Protos/facts.proto](src-multisitemanufacturing-contracts-protos-facts-proto.md). Contents: [MultiSiteManufacturing source](../source.md).
