I’ve implemented both approaches across dozens of Salesforce orgs, and the decision framework comes down to three dimensions: user experience requirements, data volume patterns, and system complexity tolerance.
Bulk vs Real-Time Flow Design:
Real-time flows excel when:
- Users need immediate visual feedback (status changes, field updates they can see)
- Volume is predictable and moderate (under 100 records per transaction typically)
- Business logic is simple and executes quickly (under 1 second)
- The operation is part of an interactive user workflow
Bulk processing (scheduled flows, batch Apex) is necessary when:
- Operations affect hundreds or thousands of records
- Processing involves complex calculations or multiple object updates
- External system integrations with variable response times
- The operation can tolerate 5-30 minute delays
The key insight: most organizations need both. The mistake is trying to make everything real-time or everything batch. Design for the actual business requirements, not the technically easiest approach.
Governor Limit Management:
Governor limits force architectural decisions. Here’s how I structure workflows to stay within limits:
For real-time flows, implement ‘escape valves’ - if the operation might affect more than a threshold number of records, route to batch processing instead. Use a decision element in your flow:
IF RecordCount > 100 THEN
Create Platform Event for batch processing
ELSE
Process immediately
END IF
This hybrid routing prevents governor limit exceptions while maintaining real-time processing for normal operations. Monitor your governor limit consumption through Event Monitoring or custom logging to tune these thresholds.
Batch processing requires different patterns:
- Chunk large operations into manageable batch sizes (100-200 records per batch is optimal)
- Implement checkpointing for long-running processes so failures don’t require complete reruns
- Use platform events to coordinate between batch jobs when dependencies exist
- Schedule batch jobs during off-peak hours to reduce resource contention
Hybrid Workflow Strategies:
The most effective pattern I’ve deployed is the ‘fast path / slow path’ architecture:
Fast Path (Real-Time):
- User-visible field updates
- Simple validations and business rules
- Critical path operations that block user workflow
- Lightweight integrations with guaranteed fast response
Slow Path (Batch/Async):
- Complex calculations and aggregations
- Multi-object cascading updates
- External system integrations
- Non-critical enrichment and scoring
Implementation using Platform Events:
- Real-time flow handles fast path operations immediately
- Real-time flow publishes platform event with context data for slow path
- Event-triggered flow or queueable Apex processes slow path asynchronously
- Completion notification updates original record or sends user notification
This architecture provides the best of both worlds - users get immediate feedback for critical operations, while complex processing happens in the background without impacting their experience.
For your specific example with 15 flows on Account, consolidate into a single orchestration flow that:
- Evaluates which logic paths are needed based on what changed
- Executes critical updates immediately
- Queues non-critical updates via platform events
- Monitors execution metrics to optimize the fast/slow path boundary
This reduced your system load by 70% because you eliminated redundant trigger executions and deferred non-critical processing.
Decision Framework:
When designing a new workflow, ask:
- Does a user need to see the result before proceeding? → Real-time
- Could this operation affect more than 100 records? → Batch
- Does it involve external systems? → Async/Batch
- Is it triggered by user action or system event? → User=Real-time, System=Batch
- What’s the acceptable latency? <5sec=Real-time, >5min=Batch
The answer is usually a hybrid: immediate validation and critical updates in real-time, with heavy processing and integrations deferred to batch. This balances user experience with system scalability and stays within governor limits even at high volume.