Orbit Uses GraphQL For Data Query Fetching
Tested & reliable - Ready for the future
In short; GraphQL is a technology developed by Facebook. It is a technical language designed specifically for data querying.
The language is built around the mathematical designation of a graph - that is, dots/points connected by edges. Hence the name GraphQL (Graph Query Language).
Today, Facebook operates the world’s largest social networking platform on GraphQL - and processes many millions of queries per second. For us, this means that we can guarantee our customers and their end-users that Orbit is built on a thoroughly tested and reliable technology that is continuously developed and highly scalable to one’s needs.
This is our way of securing the future of both the Orbit platform and your business.
If you work with existing standard technologies, such as SOAP+XML, RESTful JSON or a customised format, there are typically two approaches to making your data extracts. Let’s take a closer look at each of them.
The first approach is choosing to make one API per type of information – that is, per platform (e.g., web light, web heavy, mobile, import, etc.). This means that each platform gets exactly the information it needs - neither more nor less.
This solution presents several challenges. First, it is a complex process for developers to keep track of so many versions of “the same API”. Second, there will be a high risk of errors occurring. Third, even simple API changes will typically be very cumbersome and time-consuming because you constantly have to test whether things are working properly on all platforms.
The second approach is creating a common API per type of information that all platforms share. This solution means that as a developer you only have to keep one API up to date per information, which simplifies the work distinctly.
On the other hand, a common API solution will typically result in too much data flowing back and forth between clients. This will put the servers and the network under unnecessarily high pressure in connection with each query, as they have to handle a lot of data and traffic that is not going to be used anyway.
Overall, the challenges of both approaches raised several of concerns when building the Orbit platform. In particular, we had the following reservations:
- That the challenges would add unnecessary complexity to the collaboration between several developers
- That there would be too many workarounds compared to the API versioning
- That it would present challenges concerning data processing on different devices
This is where GraphQL comes into play
GraphQL allows the server to deal with only one API. The server thus draws on the good properties from a common API, and the clients themselves request versioning as well as the data fields to be used for the version. Also, GraphQL standardises the way the client loads data - regardless of entity type and complexity. This means that we avoid developing variations of the type of data that the client loads. All in all, it will result in a simpler workflow for the developers and stable data processing.
The specification requirements for integration with Orbit Quite simply, the requirements for a successful integration with Orbit can be reduced to the following simple formula:
HTTPS + XML.
This can only be done because we have a standardised API for our imports. Here we have chosen to use the XML format with associated XSD schema. It covers a recognised and widespread technology that offers a wealth of functional tools that can help build proper XML data.
The way it works is that you submit XML data via HTTPS and an API key, respectively. Then you will immediately be told whether the data matches the XSD schema, which can have two outcomes:
- If the validation is approved, the data will be queued for import.
- If the validation fails, you will get a response back with XSD validation error messages.
In addition to this, we have developed a web interface where you have the opportunity to validate the individual entity type that is supported by Orbit.
In the import queue, data from the XML file is structured into one row per entity so that they match the XSD schema. Subsequently, one entity at a time is imported via calls to our GraphQL server. Our server handles somewhere between 100k - 1M records per hour, depending on the entity types being imported.
Orbit data can be easily and quickly exported in most file types - including Word / InDesign / PowerPoint / Excel / XML / CSV. And you can even have your templates made for this. Furthermore, we have a direct integration with PowerBI, which can make it even easier to visualise and share business data with the rest of the organisation. We are constantly working on making our API more accessible. At the moment, we are putting in great effort to make data export to external digital platforms as smooth and streamlined as our imports - and we are not far from the goal.
As a starting point, you will be able to start integrating your data into Orbit yourself.
This is because we make detailed API documentation available for each type of entity that our import supports. We also encourage you to use our web interface to validate your data before you start the actual import.
We provide accurate guidance and assistance. Among other things, you can find help on our well-worded introductory page for the API documentation, which tells you how our APIs work and how to make queries against them.
In this way, we have made it easy for our customers to take care of the integrations themselves. And of course, we are always ready to help you if any challenges should arise.
If you have questions about our platform, we are also always ready to have a chat.