Contact our engineers at firstname.lastname@example.org for a trial.
Problems submitting to the app store? Click here
Caffeine is the result of many frustrated years spent developing native applications for our clients on a contracting and consulting basis. Application speed has many components, but in our experience one of the most frustrating is network latency–the performance tax you pay simply for talking on the network. Mobile engineers have control over the other factors, like client-side and server-side performance. But the network performance has remained relatively constant and elusively outside of engineering’s reach until now. Caffeine challenges the commonly held assumptions of performance in a purely software solution.
The Two Fundamental Speed Limitations in networking
- Bandwidth: bits per second of data
- Latency: time between a request and a response
Bandwidth is ultimately limited by the carrier’s networking hardware. Latency is primarily limited by two features: the speed of electricity through electrical wire—very roughly ½ the speed of light in a vacuum (1/2c), and the geographic efficiency of the network path (straightness of line). Because carriers define speed limits, people commonly assume that performance can’t improve. But more efficient protocols require less bandwidth and less latency, even if the speed limits are the same. Caffeine, a “pure software” solution, aggressively targets both fundamental limits –the bandwidth and latency efficiency of the request. We send less data and incur fewer round-trips than the equivalent HTTPS implementation. The exact techniques we use to do this are proprietary, but the underlying math is simple.
If we allow that there are 6000km from Boston to Switzerland (where the server is in our search demo), and that the speed of electricity is 1/2c, then a round-trip request/response there and back again is about 20ms. If we further allow a 2x inefficiency because the networking cable is not in a straight line and that each of the 20 hops on the path add about 2ms of queuing latency then we are up to 80ms. This estimate is roughly consistent with empirical results from ping (using the ICMP). There is no reason why we could not theoretically make a request in 80ms. Quite simply, if you aren’t seeing 80ms request/response times right now, your application is traveling slower than the network speed limit allows. Caffeine technology is engineered tightly to this network speed limit. The result is a network technology that is much more efficient than traditional technology, often by a factor of 2X or more.
We are not the first people to realize this; in fact our research suggests that both Facebook and Amazon (and probably all the others) are doing things like this inside their data-centers. But their technology is kept hidden behind the firewall. Caffeine is
datacenter-grade networking that we want to make available to everyone.
An Important Detail
Caffeine runs in a very important part of your application.
If anything unexpected occurs, Caffeine will fallback to using HTTP/S where it is appropriate to do so.
The below table describes this behavior:
More technical information
A report of Caffeine’s effect on image downloading may be found here
It is after more than a year of meticulous engineering and testing that we feel comfortable inviting organizations to work with us. We take great pride in our technology, and it’s essential to us that it pushes your applications forward.
Caffeine is our craft, our art, our lives. We’re not web developers, graphic designers, or wordsmiths; we’re iOS developers, and that’s pretty much it. We do one thing, and we do it well: we build tools that allow you to create experiences on the iPhone that others write off as impossible.
As far as we know (and we don’t know everything, but we know enough), our technology is the fastest secure networking software for iOS applications in the world. We believe that we can at least double your iOS application’s network performance.
It’s an exciting time for us, and we are very fortunate to be able to collaborate with great customers to make their exceptional apps even better. We jump at the opportunity to work with organizations that share our values of both end user experience and quality software development.