Distributed Foreign Keys User Guide
Distributed Foreign Keys User Guide
Overview
Distributed foreign key constraints maintain referential integrity across sharded tables using 2PC for atomic validation.
Benefits
- Cross-shard referential integrity
- ACID guarantees
- Transparent to applications
- Automatic validation
Prerequisites
- HeliosDB v3.2+ sharded cluster
- Two-phase commit enabled
- Metadata service configured
Configuration
distributed_fk: enabled: true validation_mode: strict # Or: lazy, async timeout_ms: 5000SQL Examples
-- Create foreign key across shardsCREATE TABLE orders ( id INT PRIMARY KEY, user_id INT, FOREIGN KEY (user_id) REFERENCES users(id)) WITH (shard_key = 'id');
CREATE TABLE users ( id INT PRIMARY KEY, name TEXT) WITH (shard_key = 'id');
-- Insert validates FK across shardsINSERT INTO orders (id, user_id) VALUES (1, 999);-- ERROR: FK violation (user 999 doesn't exist)Validation Modes
Strict (Default)
validation_mode: strict# Validates immediately, blocks if target shard unavailableLazy
validation_mode: lazy# Validates eventually, allows temporary inconsistencyAsync
validation_mode: async# Validates in background, fastest but eventual consistencyBest Practices
- Co-locate related data when possible
- Use async mode for high throughput
- Monitor cross-shard FK overhead
- Consider denormalization for hot paths
For more: /docs/architecture/distributed-fk.md