CWIIP flashcards
CWIIP · Build recall with a focused review session.
34 cards. Read the term and the definition here. The deck at the top of this page is optional.
- MQTT QoS levels
- QoS 0 delivers at most once (fire and forget), QoS 1 at least once (possible duplicates), QoS 2 exactly once via a four-step handshake. Higher QoS increases overhead and latency.
- MQTT Last Will and Testament
- A message the broker publishes on a topic when a client disconnects unexpectedly without a clean disconnect. Used to signal device offline status to subscribers.
- CoAP message types
- Confirmable (CON) requires an ACK, Non-confirmable (NON) does not, ACK acknowledges a CON, and RST indicates a message was received but cannot be processed.
- CoAP Observe option
- Defined in RFC 7641, it lets a client register interest in a resource so the server pushes notifications when the resource state changes, reducing polling overhead.
- DDS QoS policies
- Per-topic contracts controlling behavior, including Reliability (best-effort or reliable), Durability, Deadline, History, and Ownership. They determine matching between publishers and subscribers.
- AMQP exchange types
- In AMQP 0-9-1, exchanges route messages to queues: direct matches a routing key exactly, fanout broadcasts to all bound queues, topic matches patterns, headers matches message headers.
- Mutual TLS authentication
- Both client and server present X.509 certificates during the TLS handshake. The server verifies the device certificate, preventing unauthorized devices from connecting to the broker.
- DTLS for CoAP
- Datagram TLS provides TLS-equivalent confidentiality and integrity over UDP for CoAP. It supports pre-shared keys and certificates and tolerates packet loss.
- Certificate revocation
- Invalidates a certificate before expiry. Certificate Revocation Lists (CRL) publish revoked serial numbers; OCSP queries the status of a single certificate in real time.
- Secure boot
- A boot process that verifies the cryptographic signature of firmware at each stage before execution, blocking unauthorized or tampered code from running on the device.
- Least privilege for devices
- Each device receives only the broker topic permissions and API scopes it needs. Limits blast radius if credentials are compromised.
- ACID properties
- Atomicity, Consistency, Isolation, Durability. These guarantees make relational transactions safe under concurrent access and failures, central to transactional integration workloads.
- CAP theorem
- A distributed data store can guarantee at most two of Consistency, Availability, and Partition tolerance. Since partitions are unavoidable, systems choose CP or AP behavior.
- Time-series database
- A store optimized for timestamped measurements, using time-based indexes, compression, retention policies, and downsampling. Examples include InfluxDB and TimescaleDB for IoT telemetry.
- Change data capture
- A pattern that reads a database's transaction log and streams row-level changes to downstream systems, keeping integration consumers synchronized without polling.
- Idempotent HTTP methods
- GET, PUT, and DELETE produce the same result when repeated, so retries are safe. POST is not idempotent unless the API accepts an idempotency key.
- OAuth 2.0 bearer token
- An access token presented in the Authorization header that grants scoped access to an API. It has an expiry and is obtained from an authorization server.
- Exponential backoff with jitter
- A retry strategy that increases wait time between attempts exponentially and adds randomness, preventing thundering-herd retries against a struggling service.
- API versioning
- A scheme for evolving an API without breaking consumers, typically by embedding a version in the URI path, query string, header, or media type.
- Python mutable default argument
- A default value like a list is created once at function definition and shared across calls, causing unexpected state. Use None and create the object inside the function.
- Python list comprehension
- A concise expression that builds a list from an iterable, optionally filtering: [x*2 for x in items if x>0]. Dict and set comprehensions follow similar syntax.
- Python context manager
- An object used with the with statement that guarantees setup and cleanup via __enter__ and __exit__. Commonly used for files, locks, and database connections.
- Python GIL
- The Global Interpreter Lock in CPython allows only one thread to execute bytecode at a time. CPU-bound work needs multiprocessing; I/O-bound work benefits from asyncio or threads.
- Python virtual environment
- An isolated directory containing its own interpreter and installed packages, created with python -m venv. It prevents dependency conflicts between projects.
- paho-mqtt library
- A Python MQTT client library. Create a Client, call connect and loop_start, then publish or subscribe with callbacks like on_message and on_connect.
- gpiozero library
- A Python library for Raspberry Pi GPIO with high-level device classes such as LED, Button, and sensors. It simplifies pin configuration and event handling.
- aiocoap library
- An asyncio-based Python CoAP client and server library supporting GET, POST, PUT, DELETE, Observe, and DTLS. Requests are built as Message objects.
- pyserial library
- A Python library for serial (UART) communication. Serial(port, baudrate) opens a connection; read and write methods exchange bytes with attached devices.
- MoSCoW prioritization
- A requirements prioritization scheme: Must have, Should have, Could have, Won't have. It defines release scope and helps negotiate trade-offs with stakeholders.
- User story acceptance criteria
- Testable conditions that a user story must satisfy to be accepted, often written in Given/When/Then form. They define done and drive automated tests.
- Requirements traceability matrix
- A table linking each requirement to its design elements, code, and test cases. It demonstrates coverage and supports impact analysis when requirements change.
- Observability three pillars
- Logs record discrete events, metrics are numeric time series, and traces follow a request across services. Together they enable diagnosis of distributed system failures.
- Canary deployment
- A release strategy that routes a small percentage of traffic to the new version, monitors error rates and latency, then gradually increases traffic or rolls back.
- RPO and RTO
- Recovery Point Objective is the maximum acceptable data loss measured in time; Recovery Time Objective is the maximum acceptable downtime. Both drive backup and recovery design.