Does it Need to be “Real Time”?
The word “real-time” has been used pretty liberally over the past few years. Some people call a feed system with 5-second latency “real-time”. Others adhere to the stricter definitions of “hard/firm” real-time. It almost seems everyone has their own definition of what “real-time” means.
But we are not debating the definition of real-time here. Instead, we want to remind everyone (including ourselves) that being “real-time” is only a means to an end.
Some systems do need to be as real-time as possible. Here are a couple of examples:
1. I used to work at a trading company where shaving 10 milliseconds off the latency of our servers boosted annual revenue by millions of dollars. Yes, 10 milliseconds. Most websites take at least 100ms to load.
2. Facebook is known for launching a new feature in piecemeal and monitoring how the feature impacts their “hundreds of interlocking systems”. In such a scenario, you want to gather and analyze key metrics (CPU usage, HTTP 500 errors, etc.) as soon as possible to see if new features are breaking the existing services .
On the other hand, a vast majority of analytics doesn’t need to be real-time. What’s more: it might be counter-productive because it distracts you from what matters to your business.
“Back during that Circle of Friends growth period, I decided to automate an hourly stats email to Ephraim and myself. It satisfied our curiosity about how >things were growing right now, but it stopped me from running SQL queries every five minutes. At least in theory, that meant we were focused on real work for 58 minutes every hour. In retrospect, it seems ridiculous that we needed stats updates every sixty minutes, but that actually was an improvement…I’m afraid that in most cases, real-time stats are being used by people who aren’t iterating as quickly as growth hackers. The “need” for stats is driven more by curiosity and impatience than by decision-making.”
So, the question that all of us should ask ourselves is this: “would our business become more productive, profitable, or better-informed if we made this service closer to real-time?”
Notice that even in these two cases, the real-time they need was on different scales. Facebook would rather know something is broken in seconds rather than minutes or hours or days but not in milliseconds.