Before withdrawing a broker's old credential, what evidence shows nothing still presents it, and what will that evidence miss?
answer
- records show presenters, not holders
- can you tell the two apart?
- window longer than the slowest reconnect
- the job that runs once a month
basics
~20 sThe cluster's own connection and authorization-decision records, read over an observation window longer than the slowest client's reconnect interval, and only if the two credentials are distinguishable in them. They miss every holder that has not connected during that window.
solid answer
~50 sTwo sources, both broker-side. The connection and authorization-decision records say which principal authenticated and, where the cluster records it, which credential was presented — and that last part only works if the replacement is distinguishable from the old one, which is a decision made before the swap rather than after it. The list of current connections says who is attached now. Read both over an observation window longer than the longest natural reconnect interval in the estate, which is usually set by a scheduled job rather than by a service. What neither can show is a holder that has simply not connected: a monthly batch, a standby idle until failover, a machine image carrying a copy of the credential that is only used when a pool grows. Silence is proof of absence, not of disuse.
go deeper
Know that the cluster writes down who connected and what was allowed, and that those records are where a credential swap gets checked before anything is withdrawn.
Explain the window. Connections are long-lived, so a client that authenticated weeks ago appears nowhere recent while still holding and using the old credential.
Insist on distinguishability up front. If both credentials authenticate as the same principal, the records cannot answer the only question the withdrawal depends on.
Set what counts as sufficient proof across the estate, and design the withdrawal so an unmissed holder fails visibly, during hours, and is reversible in one action.
## What the cluster itself can tell you The withdrawal step is the only part of a swap that can break traffic, so it is decided on evidence. On a broker that evidence is close at hand, because the cluster authenticates every connection and writes down what it decided: - **Connection records** — who attached, when, from where, and with which mechanism. - **Authorization-decision records** — the principal the broker saw and what it was allowed or refused. - **The list of current connections** — who is attached right now, and on some platforms how long they have been. Read together over a window, these answer one question precisely: *what has authenticated recently, and as whom.* That is a narrower question than the one you actually want answered, and the gap between them is the whole subject. ## The distinguishability decision comes first If the replacement credential authenticates as the same principal as the old one, the records show a familiar name connecting and cannot say which of the two credentials produced it. The swap then has no readable finish line. So decide before issuing the replacement how the two will be told apart. Either the new credential yields a distinct principal that the records already name, or the cluster records something that separates them — which credential, or which issuer, was presented. What you cannot do is retrofit it: once both are in circulation under one name, the history you need was never written. ## Sizing the observation window The observation window has to be longer than the longest interval at which anything in the estate reconnects. That number is almost never set by a service: | Holder | Natural reconnect interval | In a one-week window? | |---|---|---| | A fleet redeployed by a pipeline | hours to days | yes | | A long-running writer restarted only for patching | weeks | sometimes | | A report or reconciliation job | monthly or quarterly | no | | A standby that starts on failover | never, until it is needed | no | Taking the deploy cadence as the window is the usual mistake, because it is the number everyone knows. ## What the evidence cannot show Records capture **presentations**, not **possession**. Every holder below owns a working copy of the old credential and contributes nothing to the records: - a scheduled job whose interval is longer than the window; - a standby or disaster-recovery deployment that is idle by design; - a machine image or template with a copy baked in, used only when a pool scales out; - a process that has been connected since before the swap began and has therefore not authenticated during the window at all — the most counter-intuitive one, because it is actively using the old credential while looking completely silent. That last case is worth saying out loud in an interview. On a broker, being in constant use and being invisible in the recent records are perfectly compatible, because the credential was checked once at connect and the connection has not ended since. ## Making the withdrawal survivable rather than certain Because the census can never be complete, the withdrawal is designed so that an unknown holder is an inconvenience: 1. **Withdraw during working hours**, deliberately, as its own change — never as the tail end of something else. 2. **Watch refusal records as the first signal.** After the withdrawal, a refused authentication naming a principal is exactly the holder the census missed, and it is far better information than a downstream timeout. 3. **Keep the reversal cheap.** Restoring acceptance of the old credential should be one action, not a re-issue. The unknown holder is expected; being unable to put the old credential back is what turns it into an incident. 4. **Force what you can.** Deliberately reconnecting the fleet inside the overlap window converts a large part of the unknown into evidence before you rely on it. ## Why this is a broker question and not a general one On a service where every request carries the credential, recent traffic is a near-complete census. A broker has the opposite shape: long-lived connections that authenticate once, a cluster shared across many teams so the holder list is not one team's to know, and batch or standby holders that are legitimately silent for weeks. The evidence is genuinely good and genuinely incomplete, and the senior answer is to say both — here is what the records prove, here is the class of holder they structurally cannot see, and here is why the withdrawal is designed to be undone.
- How do you make the two credentials distinguishable in the records?Decide it before issuing the replacement. Either the new credential yields a distinct principal the records already name, or the cluster records which credential or issuer was presented. If neither is available the records cannot answer the question, and the swap has to lean on an inventory of holders plus a deliberate reconnect instead.
- How long should the observation window run?Longer than the longest interval at which anything in the estate reconnects, which is usually set by the slowest scheduled job rather than by a service. A fleet that redeploys daily and a reconciliation that runs monthly do not share a window; take the larger one and say why.
- You withdraw and something unknown breaks anyway. What makes that survivable?Do it during hours, treat refused authentications as the first and best signal, and make restoring acceptance a single action rather than a re-issue. An unknown holder is expected; being unable to put the old credential back quickly is what turns a small surprise into an incident.
saying these in an interview costs you the question
- Reads no recent use as proof the credential is unused
- Assumes the records distinguish the old credential from the new
- Observes for one day and withdraws the same afternoon
- Forgets idle holders such as standbys, monthly jobs and images
- Withdraws at the end of the day with nobody watching refusals