Tides Editor User Guide
Overview
The Tides Editor (Sequence Editor) is a visual tool for designing time-based document generation sequences. It allows you to orchestrate multiple DataFlood models to generate related documents over time with parent-child relationships and realistic timing patterns.
Key Concepts
Sequences
A sequence defines:
- Time range for generation
- Multiple document types (steps)
- Generation intervals and timing
- Relationships between documents
- Transaction patterns
Steps
Each step represents:
- A DataFlood model to use
- When to generate documents
- How many to generate
- Generation probability
- Custom properties
Transactions
Transactions create relationships:
- Parent-child document links
- Field inheritance
- Triggered generation
- Correlated timing
Interface Components
Timeline View (Top)
Visual representation of the sequence:
- Time axis with intervals
- Step blocks showing active periods
- Transaction arrows between steps
- Generation density visualization
Step Configuration Panel (Left)
List of sequence steps:
- Step name and ID
- Associated model
- Generation settings
- Timing configuration
Transaction Panel (Right)
Parent-child relationships:
- Transaction definitions
- Linking strategies
- Field mappings
- Trigger conditions
Properties Panel (Bottom)
Sequence configuration:
- Start/end times
- Interval settings
- Global parameters
- Output options
Creating a Sequence
Starting a New Sequence
Create New Tides
File → New Sequence or click "New Tides" tab
Set Basic Configuration
- Name: Descriptive sequence name
- Start Time: Beginning of generation
- End Time: End of generation
- Interval: Generation frequency (ms)
Adding Steps
Method 1: Drag and Drop
- Drag model from project tree
- Drop onto timeline
- Position at desired time
- Configure generation settings
Method 2: Add Step Button
- Click "Add Step" in toolbar
- Select model file
- Configure step properties:
Step ID: unique_identifier Model Path: ./models/schema.json Start Offset: 0 (ms from sequence start) End Offset: 60000 (ms from sequence start)
Method 3: Context Menu
- Right-click on timeline
- Select "Add Step Here"
- Choose model and configure
Step Configuration
Basic Settings
- Step ID: Unique identifier for referencing
- Model Path: Path to DataFlood schema
- Description: Optional description
Timing Configuration
- Start Time: When to begin generating
- End Time: When to stop generating
- Start Offset: Milliseconds from sequence start
- End Offset: Milliseconds from sequence start
Generation Settings
- Documents Per Interval: Count per time interval
- Generation Probability: 0.0-1.0 chance to generate
- Weight: Relative frequency vs other steps
- Entropy Override: Custom randomness level
Advanced Options
- Tags: Metadata tags for filtering
- Custom Properties: Additional fields to inject
- Conditional Generation: Rules for when to generate
Configuring Transactions
Creating Parent-Child Relationships
Add Transaction
Click "Add Transaction" button or drag arrow between steps on timeline
Configure Transaction
{ "transactionId": "order_to_payment", "parentStepId": "orders", "childSteps": [ { "stepId": "payments", "minCount": 1, "maxCount": 1, "additionalDelayMs": 5000 } ], "triggerProbability": 0.95 }
Linking Strategies
InjectParentId Adds parent reference to child:
{
"linkingStrategy": "InjectParentId",
"parentIdField": "orderId",
"parentReferenceField": "orderRef"
}
EmbedParentDocument Includes full parent in child:
{
"linkingStrategy": "EmbedParentDocument",
"embedField": "parentDocument"
}
FieldInheritance Copies specific fields:
{
"linkingStrategy": "FieldInheritance",
"inheritFields": ["customerId", "region", "tier"]
}
CorrelationMetadata Adds correlation tracking:
{
"linkingStrategy": "CorrelationMetadata",
"correlationField": "correlationId"
}
Timeline Operations
Zooming and Panning
- Zoom In/Out: Ctrl+Scroll or zoom buttons
- Pan: Click and drag timeline
- Fit to View: Double-click timeline
- Reset View: Home key
Step Manipulation
- Move Step: Drag step block
- Resize Step: Drag step edges
- Copy Step: Ctrl+drag
- Delete Step: Select and press Delete
Visual Indicators
- Green: Active generation period
- Yellow: Conditional generation
- Red: Validation errors
- Blue Arrow: Transaction relationship
- Dotted Line: Conditional trigger
Advanced Features
Multi-Model Orchestration
Configure multiple models to work together:
Example: E-commerce Flow
1. Products (continuous, low rate)
2. Customers (burst at start)
3. Browsing (continuous, medium rate)
4. Cart Items (triggered by browsing)
5. Orders (triggered by cart)
6. Payments (triggered by orders)
7. Shipping (triggered by payment)
Weighted Generation
Control relative generation rates:
{
"steps": [
{
"stepId": "premium_customers",
"weight": 1.0,
"documentsPerInterval": 1
},
{
"stepId": "standard_customers",
"weight": 4.0,
"documentsPerInterval": 2
}
]
}
Time-Based Patterns
Create realistic timing patterns:
Business Hours Pattern
{
"steps": [
{
"stepId": "day_shift",
"startTime": "09:00:00",
"endTime": "17:00:00",
"generationProbability": 0.9
},
{
"stepId": "night_shift",
"startTime": "17:00:00",
"endTime": "09:00:00",
"generationProbability": 0.3
}
]
}
Burst Pattern
{
"intervalMs": 100,
"addJitter": true,
"jitterMs": 50,
"burstProbability": 0.1,
"burstMultiplier": 10
}
Custom Properties
Inject dynamic values into documents:
{
"customProperties": {
"timestamp": "{{now}}",
"sequenceId": "{{sequence.id}}",
"environment": "production",
"region": "{{random:us-east,us-west,eu-west}}",
"correlationId": "{{uuid}}"
}
}
Testing and Preview
Test Generation
Preview Mode
- Click "Preview" button
- Set preview duration (e.g., 1 minute)
- Review sample generation
Dry Run
- Click "Test Run"
- Generates without saving
- Shows statistics and timing
Validation
- Click "Validate"
- Checks all model paths
- Verifies relationships
- Reports issues
Generation Statistics
View generation metrics:
- Documents per step
- Transaction success rate
- Timing distribution
- Error summary
Export and Execution
Export Configuration
Save Sequence
File → Save Sequence Choose .tide or .json format
Export for CLI
File → Export → For DataFlood CLI Creates compatible configuration
Export for API
File → Export → For FloodGate API Includes API-specific settings
Direct Execution
Generate from Editor
- Click "Generate" button
- Set output options
- Monitor progress
- Save results
Generation Options
- Max Documents: Limit total generation
- Output Format: JSON, CSV, JSONL
- Include Metadata: Add generation info
- Seed: For reproducibility
Examples
Example 1: Banking Transaction Flow
{
"name": "Banking Daily Flow",
"startTime": "2024-01-01T00:00:00Z",
"endTime": "2024-01-01T23:59:59Z",
"intervalMs": 1000,
"steps": [
{
"stepId": "accounts",
"modelPath": "./models/account.json",
"documentsPerInterval": 1,
"generationProbability": 0.01
},
{
"stepId": "transactions",
"modelPath": "./models/transaction.json",
"documentsPerInterval": 5,
"generationProbability": 0.8
},
{
"stepId": "settlements",
"modelPath": "./models/settlement.json",
"documentsPerInterval": 1,
"generationProbability": 0.0
}
],
"transactions": [
{
"parentStepId": "transactions",
"childSteps": [{
"stepId": "settlements",
"minCount": 1,
"maxCount": 1,
"additionalDelayMs": 60000
}],
"triggerProbability": 0.1
}
]
}
Example 2: IoT Sensor Network
{
"name": "Sensor Data Stream",
"intervalMs": 5000,
"steps": [
{
"stepId": "temperature_sensors",
"modelPath": "./models/temp_sensor.json",
"documentsPerInterval": 10,
"customProperties": {
"sensorType": "temperature",
"unit": "celsius"
}
},
{
"stepId": "motion_sensors",
"modelPath": "./models/motion_sensor.json",
"documentsPerInterval": 3,
"generationProbability": 0.3
},
{
"stepId": "alerts",
"modelPath": "./models/alert.json",
"generationProbability": 0.0
}
],
"transactions": [
{
"parentStepId": "temperature_sensors",
"childSteps": [{
"stepId": "alerts"
}],
"triggerProbability": 0.05,
"triggerCondition": "parent.value > 30"
}
]
}
Best Practices
Sequence Design
- Start simple, add complexity gradually
- Test with short time ranges first
- Use meaningful step IDs
- Document transaction purposes
Performance Optimization
- Limit concurrent steps
- Use appropriate intervals
- Set reasonable document counts
- Test with small batches
Relationship Modeling
- Keep parent-child relationships logical
- Use appropriate linking strategies
- Test field inheritance
- Verify transaction triggers
Testing Strategy
- Validate before generating
- Preview with small counts
- Check timing patterns
- Verify relationships
Keyboard Shortcuts
Shortcut | Action |
---|---|
Ctrl+N | New sequence |
Ctrl+S | Save sequence |
Ctrl+Z | Undo |
Ctrl+Y | Redo |
Space | Play/pause preview |
Delete | Delete selected step |
Ctrl+D | Duplicate step |
Ctrl+G | Generate |
F5 | Validate |
Home | Reset timeline view |
+/- | Zoom in/out |
Troubleshooting
Models Not Found
- Verify model paths are correct
- Use relative paths from sequence file
- Check file permissions
Transaction Failures
- Ensure parent step generates documents
- Verify child step configuration
- Check trigger probability
- Review linking strategy
Timing Issues
- Verify start/end times
- Check interval settings
- Review step overlaps
- Test with longer intervals
Performance Problems
- Reduce documents per interval
- Increase interval duration
- Limit concurrent steps
- Use CLI for large generations
Next Steps
- Master Model Editor for schemas
- Learn Model Merge Tool
- Explore Import/Export options
- Review Sequence Configuration for API
- See Use Cases for examples