Idempotence
The property that performing an operation twice has the same effect as performing it once.
Idempotence is the property that repeating an operation changes nothing further. Setting a value is idempotent; incrementing one is not. Creating a record with a caller-supplied identifier can be; creating one with a generated identifier is not.
It is the single most useful property in any unreliable system, because it makes retry safe. Networks drop responses, jobs get rerun, users double-click, and schedulers overlap. If the operation is idempotent, none of that requires coordination — which is why an idempotency key is standard practice in payment and messaging interfaces.
It also makes automation tractable. A provisioning script that can be run repeatedly is one you can run without thinking; one that fails or duplicates on a second run has to be reasoned about every time. The same applies to scheduled jobs, migrations, and imports: designing so that a double run is harmless removes an entire class of operational anxiety. See Cron and Database Migration.
The corresponding design work is usually to make the operation express the desired end state rather than a delta — write the value rather than adjust it, upsert rather than insert, and derive rather than accumulate. Where a delta is unavoidable, a caller-supplied key and a record of keys already seen restores the property.
See also8
Race Condition
A defect whose occurrence depends on the relative timing of concurrent operations.
Testing & Verification22 connections
Cron
Time-based scheduling of recurring jobs, and the reasons scheduled jobs quietly stop working.
Systems & Tooling14 connections
Database Migration
A versioned, ordered change to a database schema, applied once and recorded.
Data & Content13 connections
Determinism
The property that identical inputs produce identical outputs, and the foundation of caching and verification.
Systems & Tooling56 connections
Relational Database
Data organized as tables with declared relationships, queried declaratively and guarded by constraints.
Data & Content13 connections
Seed Data
Initial content created programmatically to make an empty system usable or demonstrable.
Data & Content8 connections
Conflict-Free Replicated Data Type
A data structure whose replicas can be edited independently and always converge without coordination.
Networks & Distribution7 connections
Eventual Consistency
A guarantee that replicas converge given no further updates, without guaranteeing when.
Networks & Distribution16 connections
Related2
Nearby in the graph rather than deliberately chosen. Looser, sometimes surprising.
Linked from22
- Conflict-Free Replicated Data TypeNetworks & Distribution
A data structure whose replicas can be edited independently and always converge without coordination.
- Copy-on-WriteSystems & Tooling
Sharing a copy until the moment one side writes to it, deferring the cost of duplication until it's actually needed.
- CronSystems & Tooling
Time-based scheduling of recurring jobs, and the reasons scheduled jobs quietly stop working.
- Database MigrationData & Content
A versioned, ordered change to a database schema, applied once and recorded.
- eSIMNetworks & Distribution
A SIM soldered into the device and provisioned over the air, with profiles downloaded rather than cards swapped.
- Eventual ConsistencyNetworks & Distribution
A guarantee that replicas converge given no further updates, without guaranteeing when.
- Filesystem SnapshotSystems & Tooling
A point-in-time, near-free copy of a filesystem's state, made possible by sharing unchanged blocks with the live data.
- Hash TableComputation & Algorithms
A key-value structure that uses a digest of the key to index an array of buckets.
- Message QueueData & Content
A buffer that decouples a producer from a consumer in time, so neither has to be up, fast, or reachable at the same moment.
- MonadComputation & Algorithms
A wrapper type with a way to lift a value in and a way to chain functions that return more wrappers.
- Optimistic LockingData & Content
Letting concurrent writers proceed unchecked and catching conflicts only at commit time, betting that collisions are rare.
- Peer-to-PeerNetworks & Distribution
An architecture where participants communicate directly rather than through a central server.
- Race ConditionTesting & Verification
A defect whose occurrence depends on the relative timing of concurrent operations.
- Relational DatabaseData & Content
Data organized as tables with declared relationships, queried declaratively and guarded by constraints.
- Seed DataData & Content
Initial content created programmatically to make an empty system usable or demonstrable.
- Signaling ServerNetworks & Distribution
The small coordination service peers use to find each other before connecting directly.
- SoulslikePlay & Games
A design lineage in which high difficulty is a deliberate authorial position, sustained by making every death legible.
- Symbolic LinkSystems & Tooling
A file that points at another path, resolved transparently by most operations.
- Time ZoneSystems & Tooling
Civil time is a political layer over solar time, and its rules change often enough to be data.
- WebhookNetworks & Distribution
A webhook is an HTTP callback a service pushes to you when an event happens, inverting who initiates the request.
- WebRTCNetworks & Distribution
The browser standard for direct peer connections carrying audio, video, and arbitrary data.
- Write-Ahead LoggingComputation & Algorithms
Recording the intent of a change durably before applying it, so a crash can be recovered.