Processes and boundaries
| Process / crate | Job | Deliberately does not |
|---|---|---|
services/control-plane | REST, identity, publish, compile, gRPC client | Live tag loop |
services/runtime-core | Snapshot, poll, alarm, command, spool | Engineering PostgreSQL |
services/historian-writer | ready/ → provider | Tag account |
crates/domain-model | Canonical model, validation | HTTP, SQL |
crates/compiler | Revision → snapshot | Driver I/O |
crates/runtime-model | Snapshot schema, seal, load | Resource storage |
crates/tag-runtime | Scale, totalizer, expression | File/DB |
crates/alarm-engine | Alarm state machine | Clock/storage |
crates/policy | Tenant + role | OIDC/LDAP |
crates/driver-sdk | Driver trait + C header | Loading foreign code |
drivers/* | Protocol clients | Engineering model |
apps/studio-web | Browser client | Its own semantic model |
crates/server-config | vion.toml schema | Engineering PG |
packages/hmi-engine | Screen JSON → SVG | Does not paint values via React state |
Schema versions
| Namespace | Constant |
|---|---|
| Engineering | ENGINEERING_SCHEMA_VERSION |
| Snapshot | SNAPSHOT_SCHEMA_VERSION |
| Compiler | COMPILER_VERSION |
| Historian SPI | HISTORIAN_SPI_VERSION |
| Driver SDK | DRIVER_SDK_VERSION |
ADR directory: docs/architecture/adr/ in the repo.