In process and in memory real time IP and User-Agent data to eliminate network latency.
51Degrees eliminates network latency for device, location, and human vs bot intelligence.
We specialize in providing real time information at the point it's needed. Whether deployed in a network appliance like NGINX, HAProxy, or Varnish, or a Java, .NET, PHP, Python, Go, C/C++, among other, application, our free open source code means you never have to compromise.
Both IP and User-Agent derived data operate in an identical manner using the same common high-performance approach.
Others
Many solutions, particularly those using location and IP addresses, can't be deployed with your application code. Instead, a separate server and database is provided by the solution vendor. The connection between your application's compute environment and your solution vendor operates over a network.
The following diagram illustrates this implementation.
- Arrow 1 shows your application establishing a network connection and making a request for data.
- Arrow 2 is the vendor's solution receiving and unpacking the request.
- Circle 3 represents processing the data, often consulting poorly optimized data structures like general purpose databases or file formats.
- Arrow 4 is the vendor solution packing up the response.
- Finally, Arrow 5 shows your application unpacking the response and passing the data to your application code.
All this takes time. Even when deployed in the same physical data center, where the vendor solution is optimized for performance, valuable milliseconds are wasted.
When the IP or User-Agents data is repetitive then some sort of data cache could be used within your code to avoid duplicate requests to the vendor solution over a short period of time. This approach isn't effective in practice for many use cases, particularly high volume websites, analytics, and advertising.
A Better Way
51Degrees offers a better way. When your application starts up a highly optimized data file can be loaded into the same memory and compute space as your application code. The following diagram describes this implementation with the red arrow indicating the startup data load.
Once the startup is completed, typically in under a few seconds depending on factors such as file system performance, everything is in place to turn around requests in microseconds.
This is only possible because we use optimized file formats for pointer arithmetic lookup with IP and User-Agent based data types.
XML, JSON, SQL, or BigQuery general purpose data structures just slow you down.
For those that want an even faster startup time and can accept an additional millisecond or two for each lookup then the connection to the file can remain open and the segments of data loaded into memory only when they're needed.
Of course, if you want to consume your human vs bot, device, and location intelligence solution as a network appliance, you are free to do so. We even provide the code you need to make this super easy.
Read more about the full range of deployment options here.
Auto Update
Our open source code gives you the option to automatically update the data in memory or on disk without needing to restart your application. This way you don't miss a beat when deploying the daily data updates.
We handle verifying the integrity of the new data, loading into the application memory, and when all requests to the prior data have completed, cleaning up. One less thing to worry about.
Developers can learn more about in process in memory auto update in our developer documentation.
Conclusion
In a world where people expect "instant", and computing is a major driver of climate change, every single little bit of efficiency matters. We're playing our part by providing you the fastest most optimized computer code and data structures available for real time data derived from IP and User-Agent.
To see how 51Degrees compares check out our IP Intelligence and Device Detection comparison pages. Then contact us and get started with a free trial. Whatever your requirements, 51Degrees has got you covered.