# ADR-021: Edge identity uses consumer-defined keys ## Status Accepted ## Context Edges need unique identity within a graph. Auto-generated UUIDs vs consumer-defined keys affect how edges are referenced and updated. ## Decision Edges use `(graphId, key)` as their unique identity, where `key` is consumer-defined. This matches the metagraph model where consumers control identifiers. For anonymous edges (common in simple graphs), `key` can be auto-generated. ## Consequences - Consumers can reference edges by meaningful keys (e.g., `"call-001→call-002"`) - Updates use the consumer's key, not a generated UUID - Anonymous edges can have null or auto-generated keys ## References - [sqlite-host.md](../sqlite-host.md)