Back to Blog
Data Engineering Real-Time Data Relationship Signals

Real-Time vs Batch: Why Signal Freshness Changes Everything for Relationship Data

Marta Orlowska 9 min read
Abstract image contrasting real-time pulse signals with batch data processing

When you build a system that tracks relationship signals, one of the first architectural decisions you face is how often the data gets updated. Nightly batch jobs are simpler to build and easier to reason about. Real-time streaming is more complex, operationally heavier, and harder to get right. For many use cases, batch is entirely sufficient.

Relationship intelligence for sales is not one of those use cases. The reason comes down to what the data is actually being used for and how quickly its value decays.

I want to walk through the practical tradeoffs, because this decision has more impact on the usefulness of the system than most other architectural choices, and it is not always obvious why until you have seen what batch latency does to signal quality in practice.

What Relationship Signals Actually Track

Before the architecture conversation, it helps to be concrete about what signals we are talking about. Relationship intelligence systems track behavioral indicators: how often a contact responds to emails, whether they are accepting or declining meetings, how their reply tone and length has shifted, whether they have gone quiet after a period of engagement. These are signals about present state, not historical record.

This is fundamentally different from CRM data, which records discrete events (a call happened, a note was added, a stage changed). Events are facts about the past. They do not decay. A call that happened three weeks ago still happened three weeks ago, and that is the information you need from it.

Behavioral signals are different. A contact who was engaging actively three weeks ago and has since gone quiet is in a different state than they were then. The signal that matters is the current pattern, not the historical event. If your data is three weeks old, you are not tracking current relationship health. You are tracking what relationship health looked like three weeks ago, which may or may not resemble today.

The Latency Problem with Batch Processing

A nightly batch job means your data is at minimum twelve to twenty-four hours old. If the batch window is weekly, your data is up to seven days old. Either way, there is a structural lag between when a signal changes in the world and when your system reflects that change.

For many business intelligence use cases, twelve hours or even seven days of latency is perfectly acceptable. If you are tracking quarterly revenue trends, nightly batch is fine. If you are tracking monthly cohort retention, even weekly batch is fine. The signal moves slowly enough that the lag does not meaningfully affect the quality of the insight.

Relationship signals move faster. A champion who goes quiet can do so in the span of forty-eight to seventy-two hours. A contact who was responding same-day is now not responding at all. That shift is a meaningful signal. If your system only updates nightly, you catch it within a day or two. If it updates weekly, you might not catch it until five or six days after it happened, at which point the rep has already lost a week of time to act.

Why the Time-to-Action Window Is Critical

The reason signal latency matters so much for sales use cases is that the value of a signal is directly tied to the time available to act on it. A "champion going quiet" signal that reaches a rep within twenty-four hours is actionable: the rep can reach out, diagnose the situation, and take steps to reengage before the silence becomes entrenched. The same signal delivered five days later still tells you something happened, but the window for easy reengagement has narrowed significantly.

This is particularly acute in complex deals where multiple things can happen in parallel. A champion might go quiet at the same moment a new stakeholder is becoming active in the evaluation. In real time, these two signals together suggest a possible leadership change in the buying committee. In a nightly or weekly batch view, you see both events, but their temporal relationship is lost. The "same moment" framing, which is the key interpretive context, is not available from batch data.

The Engineering Tradeoff Is Real

I am not going to pretend that real-time pipelines are trivially easy to build. They are not. Stream processing introduces failure modes that batch jobs largely avoid: out-of-order events, exactly-once delivery semantics, state management across distributed consumers, schema evolution with zero-downtime migrations. These are solvable problems, but they require more careful engineering and more robust infrastructure than a daily batch ETL job.

The question is not whether real-time is harder. It is whether the additional engineering investment is justified by the quality difference in the output. For relationship intelligence, we believe it is, for the reason above: a signal that arrives twelve to twenty-four hours after an event is meaningfully different from one that arrives five to seven days later, and that difference translates directly into whether a rep has an actionable window to respond.

That said, real-time does not mean every signal needs sub-second latency. The relevant freshness window for relationship data is hours, not milliseconds. A system that processes signals within one to four hours of the triggering event is meaningfully real-time for this use case. That is a more tractable engineering target than true streaming latency, and it shifts the conversation from "real-time or batch" to "what latency target actually serves the use case."

What This Means for Signal Quality at Scale

One of the underappreciated consequences of batch latency is its effect on signal quality when you start aggregating across many contacts and many accounts. In a single-account, single-contact scenario, a few days of latency is annoying but manageable. In a system tracking fifty accounts with eight contacts each, four hundred contacts, batch latency means you are always looking at a patchwork of states, some updated yesterday, some three days ago, and you have no reliable way to know which signals are current and which are stale.

Real-time or near-real-time processing gives you a consistent freshness baseline across the dataset. When the system surfaces an alert, the signal underlying that alert reflects the current state of the relationship, not a state from several days ago. That consistency is what makes the alerts trustworthy and therefore actionable. An alert built on stale data generates uncertainty: is this signal still accurate? Did something change since the batch ran? That uncertainty is the thing that causes reps to discount alerts and revert to intuition.

The architectural decision about signal freshness is, in practice, a decision about how much you trust the alerts you are generating. Real-time signals produce trustworthy alerts. Batch signals produce alerts that are directionally useful but require a mental discount for potential staleness. For a system where the entire value proposition is "act on this now," that discount is significant.

Relationship signals that reflect what is happening now

Centralyse processes relationship signals in near real time so the alerts your team acts on reflect current engagement, not last week's data.

Request Early Access See how it works