skip to content

Your requirements name four broker settings a hosted tier must honour — how do you prove it does before migrating?

level: seniorimportance: should knowfreq 40%

answer

  1. test behaviour, not setting names
  2. trial cluster before the migration
  3. write, read back, then observe
  4. withheld, fixed, or honoured
  5. external requirement makes a refusal fatal

basics

~20 s

Turn each requirement into an observable behaviour, then drive a trial cluster into the condition that behaviour governs and watch. Write the value, read the effective value back, observe. Classify each setting as withheld, fixed or honoured, and decide which refusals are fatal.

solid answer

~50 s

Do not test setting names; test behaviours. For each requirement, write down what the cluster must be seen to do — refuse a write when too few copies are caught up, deny a principal your own rules exclude, keep data after a hard restart — and then build a trial cluster on the candidate tier and drive it into that condition. Three steps per setting: write the value, read the **effective** value back from the broker's view, then observe the governed behaviour. That classifies each one as withheld, fixed at a readable value, or genuinely honoured. Then rank the refusals: a refusal is a rule-out when the requirement comes from outside the team and no layer you still control can meet it instead, and merely inconvenient when it can. Record the result with dates and the tier's version, and re-run it after any tier change, because the withheld set is a product decision that moves.

go deeper

for a junior

The takeaway is that you check a hosted broker against your own requirements before moving, by trying it on a trial cluster rather than by reading the sheet and trusting it.

for a middle

Explain the translation step: a requirement naming a setting cannot be tested across tiers, while a requirement naming a behaviour can. Then give the write, read-back, observe sequence and what each step rules out.

for a senior

Demonstrate the judgment half — which refusal ends the evaluation and which you design around — and be ready to say what you do when the condition cannot be reproduced on someone else's cluster.

for a principal

Decide what evidence the organisation accepts before a requirement is called met on rented infrastructure, who re-runs the classification when a product changes underneath, and what it costs the estate when a tier's refusals stop fitting.

## Why the requirement list has to be rewritten first A requirement that names a setting is untestable on a tier that does not have that setting, and it is also untestable on a tier that has a setting with the same name and different behaviour. So the first move is translation: every requirement becomes a sentence about something the cluster must be **seen to do**. - Not "we must be able to set the copy count to three" but "a write must not be acknowledged unless three independent failures would be needed to lose it." - Not "we need our own authorization component" but "a principal outside this list must be refused when it attempts to read this stream, and the refusal must be visible in an audit trail we can export." - Not "we need control of flush behaviour" but "an acknowledged write must survive the simultaneous loss of the machine that accepted it." The translated form has two virtues. It is neutral about how the tier achieves it, which is the only fair way to compare tiers that are built differently. And it is **observable**, which is what makes the next step possible at all. ## The probe, per requirement 1. **Write** the value or the rule the requirement needs. A refusal here ends the investigation for that setting: it is withheld. 2. **Read the effective value back** from the broker's own view rather than from the form you submitted. A different value coming back means the setting is fixed, or clamped into a range the tier supports. 3. **Drive the trial cluster into the condition the setting governs** and record what happens. A restart under write load. A principal that your rules should deny. A stream left to reach the tier's storage behaviour. This is the only step that distinguishes a setting the tier honours from one it accepted and disregarded. 4. **Record the verdict with its date and the tier's version.** The classification is evidence, and evidence has a shelf life. ## Deciding which refusal is fatal Not every refusal rules a tier out, and a candidate who says otherwise has not run this exercise on a real purchase. The test is whether the requirement can be met somewhere you still control: | Refusal | Usually survivable when | Usually fatal when | |---|---|---| | Copy count fixed below what you wanted | the tier's own guarantee already meets the loss budget you must honour | an external rule states a number and the tier's is lower | | Own identity or decision component refused | the tier's rule model expresses the same rules and exports an audit trail | the rules depend on attributes only your own component knows | | Flush behaviour not exposed | the tier's durability promise is written down and covers the case | your loss budget is tighter than anything the tier will commit to | | Cleanup or storage behaviour narrowed | the application can tolerate the tier's behaviour | a legal or contractual rule requires the behaviour it refuses | The pattern is the same each time: a refusal is decisive when the requirement comes from **outside** the team — a regulator, a contract, a customer promise, a stated loss budget — and nothing in a layer you still own can make up the difference. It is merely inconvenient when the requirement is internal, or when a compensating control exists at the application or estate level. ## When the trial cluster cannot be driven into the condition This happens, and it is worth saying out loud rather than pretending the test always completes. You often cannot fail a node on someone else's cluster on demand, and you may not be able to reproduce a storage-layer failure at all. Three honest responses: - Ask the provider to state the behaviour in writing, and treat the written statement — not a conversation — as the evidence. A contractual commitment is weaker than a measurement but far stronger than an assumption. - Approximate the condition: a rolling maintenance period the provider schedules, a deliberate client-side fault, a load profile that pushes the tier into the behaviour indirectly. - Mark the requirement **unproven** and carry it as a named risk with a compensating control, rather than letting it quietly become "met". ## Why this is re-run, not done once The withheld set is a product decision, and products move. A tier upgrade can turn an honoured setting advisory. A move between purchase shapes of the same product can change the architecture underneath an unchanged surface. Adoption of an interface-compatible tier — one that speaks a familiar client protocol over a different implementation — brings a surface that accepts a broad vocabulary on purpose, where acceptance is a compatibility claim rather than a promise. None of these changes anything in your own configuration, so nothing triggers a review unless you schedule one. ## What an interviewer is listening for The weak answer is "we would ask the provider". The strong answer has three parts in order: requirements rewritten as behaviours, a trial cluster driven into each behaviour's condition, and an explicit rule-out rule that separates the refusal you can design around from the one that ends the evaluation. Being able to say which of your four requirements you would abandon, and which you would walk away over, is the part that shows the exercise has actually been done.

  • What do you do when the trial cluster cannot be driven into the condition a requirement governs?
    Stop calling the requirement proven. Get the behaviour stated in writing and treat that statement as the evidence, approximate the condition where you honestly can, or carry the requirement as a named risk with a compensating control. The failure mode to avoid is an untested requirement drifting into the "met" column because nobody wrote down that the probe never ran.
  • How often should this classification be re-run once you are live on the tier?
    After any change to the product beneath you: a tier upgrade, a move between purchase shapes, a change of underlying engine, or adoption of an interface-compatible service. Your own configuration will not have changed, so nothing raises an alarm — the review has to be scheduled. The exports and the dated verdicts from the first pass make each re-run cheap.
  • Why is a refused setting sometimes acceptable when the same refusal ends a different evaluation?
    Because the deciding factor is the source of the requirement, not the setting. An internal preference has alternatives: another layer, a different design, a compensating control. A requirement imposed from outside — an auditor, a contract, a stated loss budget — has none, so a tier that cannot express it has failed regardless of how good the rest of the sheet looks.

saying these in an interview costs you the question

  • Accepts a pre-sales answer instead of probing a trial cluster
  • Tests only that a value can be written, never that it is honoured
  • Writes the acceptance test against setting names rather than behaviours
  • Treats every refused setting as fatal, or every one as survivable
  • Runs the evaluation once and never again after a tier change
  • Lets an untested requirement drift into the met column