Event-driven vs scheduled synchronization for contact data integration

Our team is architecting contact synchronization between SAP CX 2111 and an external customer data platform. We’re debating two approaches: event-driven integration that pushes changes immediately via custom event handlers, or scheduled batch synchronization running every 15 minutes.

The event-driven approach promises real-time updates with minimal latency - contacts appear in the external system within seconds. However, I’m concerned about error handling complexity and network reliability. What happens when the external API is temporarily unavailable? Do we need a retry queue?

Scheduled batch sync feels more robust - we can implement comprehensive error handling, retry failed records, and maintain sync state. The trade-off is 15-minute latency and higher resource consumption during batch windows. For our use case with 50K contacts and moderate daily changes, both seem viable.

What’s the community’s experience with these patterns in SAP CX? Are there hybrid approaches that combine the benefits of both?

Both patterns are production-viable at your scale. The right choice hinges on a handful of architectural constraints more than raw latency requirements.

Pattern Comparison

Criteria Event-Driven Scheduled Batch Hybrid
Latency Seconds Up to 15 min Near-real-time for critical, batch for bulk
Error handling complexity High — requires dead-letter queue, idempotency keys, replay logic Low-Medium — failed records re-queued in next window High — two pipelines to maintain
Network fault tolerance Poor without additional infrastructure Inherent — failures contained to batch window Moderate
Resource consumption Distributed, low per-event Spiky — concentrated at batch execution Balanced if partitioned correctly
Ordering guarantees Difficult — concurrent events can arrive out of sequence Easier — deterministic processing order Complex boundary cases
Observability Per-event tracing required Single batch audit log Both required
Scalability at 50K contacts Overkill unless change velocity is very high Well-suited Justified only if segmenting by contact priority

Event-Driven Specifics in SAP CX

SAP CX exposes Commerce Cloud event framework hooks (verify in your version for 2111 specifics). Custom AfterSaveEvent listeners or ImpEx-triggered interceptors can publish to middleware. Your concern about external API unavailability is valid — without a durable message broker (Apache Kafka, SAP Integration Suite / Event Mesh, or similar), you lose events on downstream failure. A retry queue isn’t optional here; it’s mandatory infrastructure. You also need idempotency on the consumer side — duplicate delivery during retries is the norm, not the exception.

Batch Sync Specifics

At 50K contacts with moderate daily delta, a 15-minute CronJob-based sync using delta detection (timestamp watermark or dirty-flag column on the Customer or Address model) is operationally straightforward. FlexibleSearch or a dedicated DAO query against last-modified timestamps keeps payload sizes manageable. The operational risk is the batch window collision — if a batch run exceeds 15 minutes under load, overlapping execution needs a mutex/lock strategy.

Hybrid Consideration

A practical middle ground: use scheduled sync as the reliability backbone (catches everything, handles retries, maintains state) and layer event-driven push for high-priority contact attributes (e.g., consent flags, email opt-out) where latency genuinely matters for compliance or personalization SLAs. This avoids building full retry infrastructure twice — the batch job serves as the safety net.

The critical question is whether your external CDP enforces rate limits on inbound API calls — event-driven at high change velocity can exhaust quotas faster than a controlled batch window.

Ultimately this depends on context / your requirements — specifically your downstream SLA, CDP API constraints, and your team’s operational maturity with message broker infrastructure.


This draft is based on general SAP Customer Experience (SAP CX) knowledge. It has not been verified against your specific version and environment. Practitioners: verify the steps and share your experience below.

We implemented event-driven sync last year and learned some hard lessons. Real-time is great until your external system has a 10-minute outage and you lose hundreds of updates. You absolutely need a dead letter queue and retry mechanism. Consider using SAP CX’s built-in event persistence to replay failed events. The complexity is worth it if latency matters to your business.

I’ve worked with both patterns across multiple implementations. Scheduled batch sync is underrated - it’s predictable, testable, and much easier to monitor. For contact data, 15-minute latency is rarely a business problem. The key advantage is transactional integrity - you can wrap the entire batch in error handling logic and maintain a clear audit trail. Event-driven systems introduce distributed transaction challenges that are hard to debug in production.

Good points on error handling. Our business stakeholders initially wanted real-time, but when I explained the operational complexity and potential for data inconsistency during failures, they reconsidered. Maybe batch sync with shorter intervals (5 minutes) could be a middle ground?

Have you considered a hybrid approach? Use event-driven for high-priority contacts (VIP customers, active opportunities) and scheduled batch for the rest. This gives you real-time where it matters most while keeping operational complexity manageable. You can flag priority contacts with a custom field and route them through the event handler. The batch sync acts as a safety net, catching anything the event system missed due to errors or network issues. We’ve run this pattern successfully for 18 months with excellent reliability.

The hybrid approach Sarah mentioned is solid. Another consideration is data volume patterns. If your changes cluster at specific times (morning data entry, end-of-day updates), scheduled sync can be optimized for those windows. Event-driven systems maintain constant resource overhead regardless of activity patterns.

One factor often overlooked is the external system’s API design. If it supports bulk operations efficiently, batch sync can actually be faster overall despite the interval delay. Event-driven integration means individual API calls per contact - network latency adds up. We measured 200ms per event vs 8-second batch processing 500 contacts. The batch completed all updates faster than events could process 40 contacts.

Let me synthesize the key considerations we’ve discussed for choosing between these integration patterns.

Event-Driven Integration Strengths: Real-time data propagation with minimal latency is the primary benefit. Changes appear in downstream systems within seconds, which matters for use cases like live customer service dashboards or real-time marketing triggers. Event-driven systems scale naturally with data volume - processing overhead is distributed across time rather than concentrated in batch windows. This approach also reduces the risk of processing stale data since each change is handled immediately.

However, error handling complexity is significant. You need robust retry mechanisms, dead letter queues, and idempotency handling. Network reliability becomes critical - temporary outages in the external system can cause data loss without proper safeguards. Monitoring is also more challenging since failures are distributed across individual events rather than consolidated batch logs.

Scheduled Batch Synchronization Strengths: Reliability and predictability are the core advantages. Batch processing allows comprehensive error handling - failed records can be retried, logged, and reviewed systematically. You maintain clear transactional boundaries and can implement rollback logic if needed. The operational model is simpler to understand and troubleshoot. Batch sync also optimizes API usage when external systems support bulk operations efficiently.

The latency trade-off is the obvious downside. With 15-minute intervals, changes take up to 15 minutes to propagate. Resource consumption spikes during batch windows, which requires capacity planning. For high-volume scenarios, batch windows can become processing bottlenecks.

Hybrid Approach Recommendation: For most SAP CX implementations, I recommend the hybrid model mentioned earlier. Use event-driven sync for high-priority entities (VIP contacts, active opportunities) where latency matters, and scheduled batch for the bulk of data. This balances real-time needs with operational simplicity.

Implement a custom field like ‘syncPriority’ on the contact entity. Configure event handlers to trigger only for priority=HIGH contacts. The batch sync runs every 15-30 minutes as a safety net, processing all contacts but skipping those successfully synced via events (using a ‘lastSyncedAt’ timestamp comparison).

Error Handling Strategy: Regardless of pattern choice, implement these error handling practices:

  • Idempotency keys to prevent duplicate processing
  • Exponential backoff for retries (event-driven) or failed record queues (batch)
  • Comprehensive logging with correlation IDs to trace individual contact sync journeys
  • Monitoring dashboards showing sync lag, error rates, and throughput

Latency vs Reliability Balance: The fundamental trade-off is between immediate consistency (event-driven) and eventual consistency with higher reliability guarantees (batch). For contact data specifically, eventual consistency is usually acceptable. Contacts rarely change so frequently that 15-minute latency causes business problems. The exception is real-time marketing or service scenarios where immediate contact updates drive automated workflows.

My recommendation for your 50K contact scenario: Start with scheduled batch sync every 10 minutes. This gives you manageable latency while keeping operational complexity low. Monitor actual business impact of the delay. If specific use cases emerge requiring real-time sync, add event-driven handlers for those scenarios only. This incremental approach lets you validate the complexity investment against real business value.