Semi E179

SEMI E179 specifies Protocol Buffers common components — a shared library of basic .proto message types (timestamps, equipment and chamber identifiers, unit enumerations, status codes) that every protobuf-based EDA standard imports instead of redefining its own version, the same building blocks that standards like E125.2's protobuf encoding for EqSD and E120.2's protobuf encoding for CEM each need but were never standardized to share. Each individual ".2" protobuf standard in this family answers "how does this one data model get encoded efficiently in protobuf"; E179 answers a question none of them were built to answer on their own: when E120.2, E125.2, and every future protobuf encoding all need a timestamp field or an equipment-ID field, do they each define their own slightly different version of that basic type, or do they all import the same one.

E120.2 and E125.2 each define a protobuf encoding for their own data model
CEM status variables, EqSD parameter descriptions — different content, same basic building blocks
What defining each encoding independently risksEvery .2 standard needs the same handful of basic types
Each standard redefines its own timestamp, equipment-ID, and unit types
Subtly different field names or formats make cross-standard tooling harder to write
No shared schema to import from, so duplication compounds with every new protobuf standard
A fleet-wide protobuf parser needs special-case handling per standard instead of one shared base
SEMI E179 — Protocol Buffers common componentsOne shared .proto library every EDA protobuf standard imports
Common timestamp, identifier, unit, and status-code message types
Defined once, imported by E120.2, E125.2, and every future protobuf encoding standard
Every protobuf-based EDA standard shares the same basic vocabulary
A host's protobuf tooling handles the common parts once, not once per standard

A few things are worth knowing about why the protobuf-based EDA family needed a common-components standard once more than one of its member standards existed:

A single protobuf encoding standard, built in isolation, has no reason to think about reuse — it just defines the types it needs and moves on, and that's exactly how E120.2 and E125.2 could each end up with their own timestamp or equipment-ID message type even though both standards need functionally the same information. That isn't a flaw in either individual standard; it's simply what happens any time two independently developed schemas solve the same small sub-problem without a shared place to put the solution. The risk only becomes visible once a third, fourth, and fifth protobuf-based standard enters the EDA ecosystem, each needing the same handful of basic types, and a host's tooling has to either special-case every standard's slightly different version of "equipment ID" or demand that the family finally standardize those shared pieces once.

Three Standards, Three Timestamp Types SEMI E179 gives every protobuf-based EDA standard one shared definition instead E120.2 (CEM protobuf) message Timestamp { int64 epoch_ms; } Its own definition E125.2 (EqSD protobuf) message Timestamp { string iso8601; } A different, incompatible definition Next protobuf standard Picks a third format, or finally reuses one E179 common components semi.common.Timestamp, semi.common.EquipmentId, semi.common.Unit, semi.common.StatusCode — defined once, imported by every protobuf EDA standard Retrofit for E120.2/E125.2, mandatory for future standards One protobuf parser for the shared vocabulary, not one per standard

The practical payoff of E179 is in tooling, not in any single message — a host or vendor building a protobuf parser for the EDA ecosystem can write one implementation of the common types and reuse it across every standard that imports them, instead of writing and maintaining a slightly different parser path for each standard's own version of the same basic concept. That matters most at exactly the scale this whole protobuf family exists to serve: a fab running fleet-wide EDA collection across many tool types and many protobuf-encoded standards benefits from every one of those standards agreeing, byte-for-byte, on what a timestamp or an equipment identifier looks like, because that agreement is what lets generic tooling work everywhere instead of needing per-standard special cases.

E179 sits underneath E120.2's protobuf CEM encoding and E125.2's protobuf EqSD encoding as the shared foundation this glossary has already covered from each individual standard's own side — neither E120.2 nor E125.2 needed E179 to exist before they could define their own encodings, but both become more consistent and more tooling-friendly once they import E179's common types instead of maintaining their own. The pattern mirrors what E172's SEDD and E173's SMN already did for plain SECS-II: take a piece of infrastructure every related standard was quietly reinventing, and standardize it once so the whole family benefits.

Read E179 as the standard that closes the gap the protobuf-based EDA family was never built to close on its own: every individual encoding standard solved its own data model well, but none of them had a shared place to put the basic types every one of them needs, and E179 is what actually gives E120.2, E125.2, and every future protobuf EDA standard one common vocabulary to import instead of each inventing its own.

Take SEMI E179 further

Ask the copilot about this term, or have our engineers assess it against your process.