A question for the community: Is there no REST in a realtime world?
I have been a father since April 8th. Little Etta keeps me super busy and seems to be in a constant state of transition and change. Even when we are both asleep, I am listening to her breathing and wake up multiple times a night just to make sure she is ok. The demands are real-time, all the time. If she needs something, zero latency is required and her parents are the only resource that can reply to her requests. This experience has been all the things that people say: life-changing, exhausting, amazing. It has not been restful and in my sleep deprived state
[caption id=”attachment_847" align=”alignright” width=”300" caption=”by the time I am crafting code, algorithms will perfectly predict the data stream to avoid latency”]
[/caption]
I have been thinking about APIs and the REST architecture in the context of the real-time web.
I continue to wonder what happens as we drive toward analysis of data streams rather than of data pools. In this case I am wondering about the future of the REST architecture. When we approximate real-time, do the periods between transition states, the rest period in the RESTful application, get smaller and smaller? Do the number of calls to the databases per time period increase? In the limit will we see I/O count approach infinity and the time that applications spend in a RESTful state approach zero? As the data (and state) is changing on both the client and server side in real-time, all the time, at what point does the way that we build apps need to change from API calls to an always open, real time API connection? How does this affect pricing for businesses built on a charge per API call model?
To the layman (a.k.a. me) it feels like the move from wireless communication on a walkie talkie to talking on wireless phones. With a walkie talkie, the connection is two-way, but it is one way at a time. Only one person can talk at once and you have to let the other party know when you are done by saying, “over.” On the phone two (or more) people can all talk at once because the line is “open.”
I am no engineer (and hope to get some technical horsepower to engage in the comments) but want to know what happens to the fundamental ways we think about building applications and interpreting data that result in actionable insight in this real time state of the web.