Glossary¶
Vocabulary shared by the Python and Node.js implementations. When an API name exists in only one runtime, its definition says so explicitly.
A¶
- Append-only
- A storage model in which the application adds records without modifying or deleting existing ones. It is notably used for immutable audit logs.
- Audience-bound (JWT)
- Describes a JWT whose
audclaim limits its use to the intended service. A token issued forservice-amust be rejected byservice-b.
C¶
- Controller
- The "C" in MIC. A thin layer that orchestrates Model and Interface, such as an HTTP handler or drain worker, without owning domain rules.
- Cookiecutter scaffold (Python)
- The historical Python generator stored in
template/. It creates a structured service from a small set of answers. See the Python scaffold.
D¶
- Dead-letter
- The final state of a message that exhausted its attempts. It remains observable and can be handled manually, but is no longer retried automatically.
DomainError- A canonical error that describes a domain violation with a stable code, a message, and optional details. Adapters convert it to a non-transient client response. See domain errors.
- Drain
- One pass of a worker over a queue or outbox: it claims eligible items, delivers them, then records success, another attempt, or a dead-letter transition.
- Dual-key rotation
- A deployment window during which the verifier accepts both a current and a previous secret. Issuers migrate to the new key before the old one is removed.
H¶
- HTTP adapter
- A component that translates an
HttpRouteSpecto a concrete framework without changing the domain handler. MIC provides FastAPI and Litestar adapters for Python, and Node HTTP, Express, Fastify, Hono, and NestJS adapters for Node.js. HttpRouteSpec- A framework-neutral HTTP route contract: method, path, handler, name, category, and optional schemas. Adapters in each runtime consume the same concept.
HttpRequestContext- A framework-neutral view of an incoming request: headers, query and path parameters, cookies, and the authenticated principal.
HttpResponseSpec- An explicit handler response made of an HTTP status and a body that the adapter validates and serializes.
HttpSuccessEnvelope- The canonical successful response envelope:
{"success": true, "data": <value>, "meta": <object | null>}.
I¶
- Interface
- The "I" in MIC. Everything that connects the domain to external systems: inbound and outbound HTTP, authentication, events, storage, and observability.
- Idempotent
- Describes an operation that can be repeated without changing its final result. Updating by identifier can be idempotent; appending a new audit event usually is not.
M¶
- MIC
- Model / Interface / Controller. A shared architecture that keeps the domain independent from frameworks and transports. See What is MIC?.
- Mirror tests (Python)
- A convention of the Python implementation: the
tests/tree mirrors the application code and the gate requires 100% line and branch coverage. Node.js has its own native tests, npm archive checks, and published-consumer test; it does not claim this naming convention. See mirror tests. - Model
- The "M" in MIC. Everything that describes what the service does: entities, schemas, services, and domain rules, independently from the HTTP framework or persistence mechanism.
P¶
- Port / Adapter (hexagonal vocabulary)
- Terms reserved for their established meaning in hexagonal architecture. MIC documentation uses more precise names, such as "HTTP adapter", followed by the relevant framework.
- Push vs Pull (service-to-service)
- Two exchange modes: with push, the producer calls or publishes to the recipient; with pull, the consumer reads available items. MIC favors push for routine delivery and separates historical replay.
R¶
- Read model
- A denormalized projection of information owned elsewhere, optimized for a read use case such as search or listing. It can be rebuilt from its source of truth.
S¶
schema.*(Node.js)- Executable contract builders from
@mic-struct/mic-core. They validate inputs and outputs at runtime while exposing the matching TypeScript types. ServiceAuthSigner- Signs a service-to-service JWT bound to an explicit audience, lifetime, and set of scopes.
ServiceAuthVerifier- Verifies the signature, expiry, audience, issuer, and scopes of a service-to-service JWT before the handler runs.
- Service generator
- A tool that produces an editable MIC project with no proprietary format.
The Python runtime uses the Cookiecutter template; Node.js provides
@mic-struct/create-mic-service. See the Python and Node.js quickstarts. ServiceHttpClient- An outbound HTTP client that signs service-to-service requests and converts
canonical failures to
DomainErrororTransientError. The Python implementation wraps httpx; the Node.js implementation usesfetch. StrictSchema(Python)- An immutable Pydantic v2 base that rejects unknown fields and revalidates
each changed copy. In Node.js,
schema.*contracts provide runtime validation without reproducing the Pydantic API.
T¶
TransientError- A canonical error that marks a failure likely to succeed after a retry,
such as an unavailable database or failing upstream service. Adapters keep
it distinct from a permanent
DomainError. - Transactional outbox
- A pattern in which a service writes domain state and the event to publish in one transaction. A dispatcher later claims and delivers the event under an explicit retry policy.
W¶
- Worker
- A process that handles persisted work, such as a queue or outbox. Its lifecycle, cadence, and hard termination remain controlled by service infrastructure.