Keyword reflexes, and where they mislead
Lesson 2 of 4 in Walk In Ready.
A reflex is a trained jump from a phrase in the stem to a short candidate list. "Sub-millisecond key lookup" produces one; "no servers to manage" produces another. Reflexes are worth drilling because they buy the scarcest thing in the room: they cut four options to two in a couple of seconds, which is where the time for careful reading comes from.
And they are the single most reliable way to get a question wrong, because a well-built item plants the keyword and then adds the clause that breaks it. The phrase "with no infrastructure to manage" sits in a stem that also requires a specific Hadoop ecosystem tool — and the serverless answer, which your reflex has already picked, loses.
The rule is therefore strict and short:
A reflex shortlists. The deciding constraint chooses.
A reflex that survives the constraint check is an answer. A reflex you never checked is a guess that felt like knowledge, which is worse than a guess you knew was one.
| The phrase in the stem | The reflex | Where it misleads |
|---|---|---|
"no servers to manage" · "least operational overhead" | Shortlist the serverless options: serverless Spark, serverless SQL, a function, a state machine, a managed delivery stream. | A named ecosystem tool beyond Spark, node-level libraries, Spot capacity, or sustained high utilisation where a long-running cluster is cheaper. The phrase is about effort, and a cost clause can point the other way. |
"microsecond" reads | Shortlist the durable in-memory store. | Check the unit. "Single-digit millisecond" is a thousand times looser and is the key-value store’s own figure, so upgrading to in-memory on a millisecond requirement adds cost for latency nobody asked for. |
"look up one record by id" | Shortlist the key-value store. | If the same stem also needs multi-table joins, ad hoc filtering on non-key attributes, or aggregates over history, the access pattern is not actually a keyed lookup and the reflex has answered half the question. |
"exactly once" | Shortlist an idempotent destination: merge on a business key, a conditional write, a deterministic object key. | The trap is looking for a delivery setting instead. An option promising exactly-once with no mention of the destination is describing something that does not exist end to end. |
"ad hoc SQL over data in S3" | Shortlist the serverless query engine. | If the query must join those files to tables already loaded in the warehouse, the engine has to be the warehouse reading external tables — the serverless engine cannot reach inside the warehouse. |
"Kafka" · "topics" · "consumer groups" | Shortlist managed Apache Kafka. | Only if the clients stay. If the stem says applications are being rewritten anyway, protocol compatibility stops being a constraint and the native stream’s lower overhead wins instead. |
"cheapest at rest" · "rarely accessed" | Shortlist a colder storage class, or a lifecycle transition into one. | Colder classes carry retrieval charges and minimum storage durations, so data that turns out to be read monthly can cost more. And a colder class does nothing for query cost, which is driven by bytes scanned. |
"process only what is new" | Shortlist job bookmarks, or an event trigger per arriving object. | A backfill requirement in the same stem inverts it: bookmarks exist to skip what has been seen, so reprocessing history means resetting or bypassing them, and an option that simply reruns the bookmarked job processes nothing. |
"discover the schema" | Shortlist a crawler. | When the schema is known and stable, defining the table directly is more reliable — a crawler can infer a numeric column as a string from one bad file, and then a downstream query breaks for a reason that is not in the data. |
"who accessed the data" | Shortlist the API call record, including its data events for object reads. | Three neighbouring questions have three different answers: who called is the API trail, what state was it in at a past moment is the configuration history, and is it healthy now is metrics. Reflexively reaching for whichever you know best is how this family is lost. |
"must not leave the Region" | Shortlist the options with no cross-Region copy. | Then check backups, replicas, and service-managed storage. A design whose primary path is compliant and whose backup copy is not still fails, and that is usually where the item hides the violation. |
"the dashboard must be fast" | Shortlist a pre-aggregated layer: a materialised view, a cached result, an extract. | If the same stem demands live data within seconds, a cache or an extract is exactly what breaks it. Freshness and query speed pull against each other, and the stem usually tells you which one it is buying. |
Interactive sorting exercise: Each card names a keyword and the clause that follows it. Does the reflex survive, or does the second clause break it? This is the check you have to learn to run automatically.
Why reflexes are still worth drilling, given all that
Because the alternative is reading four full options carefully on all 65 items, and the clock does not allow it. A reflex is a reading aid: it tells you which two options to read closely and which two to skim. The error is not having reflexes — it is letting one answer the question.
The practical form is a two-beat rhythm. Beat one: the keyword fires, two options go quiet. Beat two: name the constraint and check the survivors against it. If the check passes, commit; if it fails, you have just learned something specific about the item rather than guessing between two plausible designs.
The three units that decide questions, and the trap in each
Time. Seconds, minutes, hours and days each pick a different path, and candidates routinely round in the wrong direction. "Near real time" is not a unit — look for the number beside it.
Bytes. Gigabytes, terabytes and petabytes change the engine, not just its size. And when a byte figure appears beside a bandwidth figure, the item is a calculation: bits divided by bits per second, then divided by 86,400 for days.
Latency, as a store specification. Microseconds, single-digit milliseconds and "seconds" are three different stores. The trap is treating a tighter number as strictly better — proposing an in-memory store for a millisecond requirement is a wrong answer, not a cautious one, because the stem also said something about cost.
A reflex worth building deliberately: the three observation questions
This family is lost more often than any other in the governance domain, and it is pure recognition.
- Who called which API, and when? — the API call trail. With data events enabled it also records object-level reads and writes, which is how "who read this file" is answered.
- What configuration did this resource have at 14:00 last Tuesday? — the configuration history. It records state over time, which a call record cannot reconstruct because it only sees the moments of change.
- Is the pipeline healthy, and did a run fail? — metrics, logs and alarms.
Three questions, three services, no overlap. Say the question out loud in those words and the answer is forced.
Key terms: Keyword reflex, Bytes scanned, Backfill, Exactly-once processing, Idempotency
Interactive checkpoint quiz (2 questions) — open this page in a browser to take it.