NICET SSI study materials
NICET SSI study resources

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.