Skip to content

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

  1. Disable or bypass JanusGraph's internal lock acquisition.
  2. Use DynamoDB ConditionExpression on individual writes to detect conflicts optimistically.
  3. Use DynamoDB TransactWriteItems for multi-item mutations that must be atomic.
  4. Retry on condition-check failure (optimistic concurrency control).

Seen in

Last updated · 542 distilled / 1,571 read