Appbase, a database-as-a-service (DBaaS) startup, has just announced the public launch of the Appbase Platform and real-time events based database API. The Appbase API allows developers to build scalable applications that include real-time events functionality and collaborative and full-text search features.
Appbase aims to combine the most essential database technologies into a platform that simplifies database access and allows developers to quickly build real-time applications with powerful search and collaborative features. Developers can use the Appbase API to incorporate database functionality such as full-text search, numeric-range queries, geospatial queries and sort queries into their applications. Appbase is participating in the Techstars Cloud 2015 program in San Antonio, and the platform has been in private beta since Sept. 10. At the time of this writing, more than 130 applications have been built using Appbase, and over 4.9 million Appbase API calls have been made.
While DBaaS is fairly new, there are quite a few providers already in the space, including Orchestrate, ScaleDB, AWS (Aurora) and Oracle. There are some similarities between the Appbase and Orchestrate DBaaS platforms. However, several things differentiate the Appbase platform from Orchestrate. We reached out to Appbase co-founder Siddharth Kothari, who explained to ProgrammableWeb the differences between Appbase and Orchestrate:
Appbase is a real-time, events-based API, similar to a distributed Socket.IO. Listening on an Appbase vertex or an edge is similar to subscribing to a channel: You keep getting all the updates on that vertex/edge via a WebSocket. Orchestrate, on the other hand, serves use cases that are more geared towards non-real-time systems.
The popularity of graph databases has grown rapidly in recent years, as has graph analysis, which is used to understand and visualize connected data. According to the Appbase documentation, Appbase is a directed graph where users deal with vertices/edges. Appbase is not a property graph; the concepts of edges and edge names are different. They do share the same concept of vertex, however.
On the data model, property graph is typically used by many databases such as TitanDB and others that are based on the blueprints spec. Unlike property graph, an edge in Appbase cannot store any data. Edges are only used for connecting vertices (nodes) and can optionally have a priority. A priority is essentially a secondary index that a developer can use to sort the data.
For example, an interesting use case here would be a global rank board. I would model the node as containing the meta information related to the rankings, such as number of users, top score, median score, etc. The score itself would be stored by linking an edge from the rank node to the user's node, with priority value as the score itself. This allows me to get information such as "the top 10 scores" [and] "all scores above 100.3" instantly, as we keep a secondary index based on the priority value. A much more common use case is ordering based on time stamp, which is very relevant for building chat systems.
Developers can use Appbase to create applications that analyze and visualize interconnected data. Said Kothari:
Since Appbase allows modeling of data as a graph, it is highly suited for the graph visualization- and analysis-based use cases. You can easily hook a recommendation engine that fetches real-time data from Appbase (as an input sensor), performs some computation and then store the results back, available in real time. Given Appbase's real-time, events-based API, batch querying is not a recommended use case.
Appbase makes it possible for developers to build real-time applications that incorporate database functionality without the need for multiple databases or an existing server setup. Appbase can also be used with existing back-end infrastructure or on the client. Appbase is attempting to become a "Twilio for databases," combining the best features from popular database, server and communication platforms such as Redis, Elasticsearch and Socket.IO, which can be accessed programmatically using a single API.
Data is becoming increasingly complex and interconnected; many developers are using the vast amount of Internet of Things-generated data to create innovative real-time applications that often utilize graph databases, graph analysis and other nontraditional database technologies. It will be interesting to see what kind of success Appbase achieves with its all-in-one, real-time, events-based database API.
For more information about the Appbase platform and API, visit Appbase.io.