NICET SSI flashcards
NICET SSI · Build recall with a focused review session.
32 cards. Read the term and the definition here. The deck at the top of this page is optional.
- Interface contract
- The documented agreement covering protocol, data format, and error semantics at an integration point; anything not in the contract is an untested assumption that can break without warning.
- Loose coupling
- A design property in which components depend on each other only through stable, minimal interfaces, so a change inside one component does not force changes in others.
- Cohesion
- The degree to which the elements inside a single component belong together and serve one purpose; high cohesion localizes change and makes component behavior easier to reason about.
- Idempotency
- A property where repeating the same operation produces the same end state as performing it once, which makes safe retries possible after ambiguous network failures.
- At-least-once delivery
- A messaging guarantee where every message is delivered one or more times; duplicates are possible, so consumers must deduplicate using message identifiers or idempotent handlers.
- Exactly-once semantics
- A delivery guarantee that no message is lost or duplicated; it is typically approximated with idempotent consumers or transactional offsets rather than achieved by the transport alone.
- Publish-subscribe
- A messaging pattern where producers publish to a topic and all subscribed consumers receive a copy, decoupling sender from receiver count and identity.
- Point-to-point queue
- A messaging pattern where each message is consumed by exactly one receiver from a queue, commonly used to distribute work across competing consumers.
- Circuit breaker
- A fault-isolation pattern that stops calling a failing dependency after a threshold of errors, failing fast until a probe succeeds, preventing resource exhaustion in the caller.
- Bulkhead pattern
- Isolating resources per dependency, such as separate connection or thread pools, so that one failing integration cannot starve healthy integrations of capacity.
- Timeout budget
- The maximum time a caller will wait for a downstream response; each downstream timeout must be shorter than the caller's remaining deadline to avoid orphaned waits.
- Exponential backoff
- A retry strategy that increases the delay between attempts exponentially, often with jitter, to avoid synchronized retry storms overwhelming a recovering service.
- API versus ABI
- An API is a source-level contract requiring recompilation when changed; an ABI is a binary-level contract whose change breaks already-compiled programs that link against the library.
- Dynamic linking
- Resolving shared-library symbols at load or run time; the loader matches the library's versioned soname, so ABI-incompatible upgrades can break existing binaries.
- Interprocess communication
- OS-provided mechanisms for processes to exchange data, including pipes, sockets, shared memory, message queues, and signals, each with different synchronization and permission rules.
- Shared memory
- An IPC mechanism mapping the same memory region into multiple processes; it is the fastest option but requires explicit synchronization such as semaphores or mutexes.
- Semaphore
- A synchronization primitive holding a counter that gates access to a shared resource; processes block when the count reaches zero until another releases it.
- Mutual exclusion lock
- A synchronization primitive allowing only one holder into a critical section at a time, preventing concurrent modification of shared state across threads or processes.
- Deadlock conditions
- Four simultaneous conditions cause deadlock: mutual exclusion, hold-and-wait, no preemption, and circular wait; breaking any one condition prevents the deadlock.
- Race condition
- A defect where program output depends on uncontrolled timing of concurrent operations; it is prevented by synchronization, atomic operations, or eliminating shared mutable state.
- Schema evolution
- Changing a data contract over time; additive optional fields are backward compatible, while field removal, renaming, or type change breaks consumers and needs versioning.
- Backward compatibility
- A newer producer's messages remain readable by older consumers; achieved by adding optional fields and never reusing or repurposing existing field meanings.
- Data transformation mapping
- Explicit rules converting source fields to target fields, including units, encodings, and time zones; implicit coercion here is a common source of silent data corruption.
- Two-phase commit
- A distributed transaction protocol with prepare and commit phases coordinated by a manager; it gives atomicity across resources but blocks participants if the coordinator fails.
- Saga pattern
- A distributed transaction approach using a sequence of local transactions with compensating actions for rollback; it yields eventual consistency without holding locks across services.
- API gateway
- A centralized entry point that routes requests to backend services and applies cross-cutting policy such as authentication, rate limiting, and request transformation.
- Message broker
- Middleware that stores and forwards messages between producers and consumers, providing decoupling, buffering, and delivery guarantees independent of either endpoint's availability.
- Correlation ID
- A unique identifier attached to a request and propagated through every downstream call, allowing logs and traces from separate components to be joined.
- Distributed tracing
- Recording spans for each hop of a request across components, linked into a single trace, to locate latency and failures in an integrated system.
- Contract testing
- Verifying that a consumer's expectations and a provider's responses agree on the interface, catching integration breakage without running full end-to-end environments.
- Test double
- A stand-in for a real dependency in tests; it must reproduce the real interface's error and latency behavior, not only successful responses, to be trustworthy.
- Fail-fast startup
- A startup rule where a component aborts if required configuration or dependencies are missing, rather than starting in a degraded state that hides the fault.