Service boundaries
Catalog and Diagnostic services communicate through explicit APIs.
Reference Implementation
A public reference implementation for contract-first gRPC services, service-owned persistence, durable diagnostic workflows, security boundaries, reliability controls, and OpenTelemetry-based observability.
Catalog and Diagnostic services communicate through explicit APIs.
Each service owns its own PostgreSQL schema and application role.
Least-privilege checks are enforced at service boundaries.
Traces, metrics, and logs make local runtime behavior inspectable.
System Architecture
The runtime centers on Catalog and Diagnostic services. Callers authenticate at service boundaries, Diagnostic performs Catalog lookups through a gRPC client where required, each service persists through its own PostgreSQL ownership boundary, and telemetry flows through OpenTelemetry into local observability tools.
Engineering Decisions
Trade-offs that make the system reliable, secure, and maintainable.
Define service behavior through Protocol Buffer contracts and unary gRPC methods.
View ADR →Use separate service-owned schemas and avoid cross-service joins or foreign keys.
View ADR →Persist jobs and event records through PostgreSQL-backed state and outbox tables.
View ADR →Use deadlines and bounded retry only for selected transient Catalog lookup failures.
View ADR →Runtime Behavior
A caller submits a diagnostic request to the Diagnostic Service. The service authenticates and authorizes the caller, checks Catalog where service eligibility is required, persists the accepted job and idempotency record, and returns a bounded response.
Security Boundaries
Observability
Runtime Evidence
Selected behaviors were reproduced locally with synthetic data and captured as runtime evidence. These artifacts demonstrate correctness, failure handling, and observability boundaries without making performance or production-scale claims.

Distributed trace
A Diagnostic create request propagates W3C Trace Context across the gRPC boundary into Catalog and its PostgreSQL lookup, with Diagnostic persistence visible in the same trace.
Failure handling
The failed request is bounded, traceable, and represented with verified retry attempts.
Optimistic concurrency
The stale writer receives Aborted after the accepted update advances the version.
Idempotency and outbox
One idempotency key maps to one durable job and one unpublished job-created outbox row.
Scope And Limitations
Verified locally with synthetic data. No performance, scalability, availability, or production-reliability claims are implied.
No billing, tenant administration, or product-management workflows.
No broad API gateway, GraphQL layer, or MCP server in the core MVP.
No service mesh, streaming RPCs, CQRS, event sourcing, or cloud-provider-specific infrastructure in the current scope.