PATTERN Cited by 1 source
Conditional-write transaction strategy¶
Replacing a graph database engine's default pessimistic locking with DynamoDB conditional writes and transaction APIs to ensure data integrity at lower overhead.
Context¶
JanusGraph's default transaction model uses heavyweight locking to
prevent concurrent modification conflicts. When backed by a managed
store like DynamoDB that natively supports conditional writes
(ConditionExpression) and multi-item transactions
(TransactWriteItems), this locking is unnecessary overhead —
DynamoDB's storage layer already provides the atomicity guarantees.
Pattern shape¶
- Disable or bypass JanusGraph's internal lock acquisition.
- Use DynamoDB
ConditionExpressionon individual writes to detect conflicts optimistically. - Use DynamoDB
TransactWriteItemsfor multi-item mutations that must be atomic. - Retry on condition-check failure (optimistic concurrency control).
Seen in¶
- sources/2026-05-19-airbnb-scaling-identity-graph-unified-knowledge-graph-infrastructure — Airbnb implemented a custom transaction strategy in their JanusGraph fork, leveraging DynamoDB's conditional writes and transaction APIs to "ensure data integrity with lower overhead" than JanusGraph's default locking.
Related¶
- systems/janusgraph — the engine whose locking was replaced
- systems/dynamodb — provides the conditional-write primitives
- concepts/pluggable-storage-backend — enables this substitution