Technology Fridays: Neptune Finally Brings Graph Databases to AWS
Welcome to Technology Fridays! Continuing with the exciting new technologies AWS unveiled during the recent Reinvent conferences, today I would like to discuss my impressions of the Neptune graph database service.
Neptune is the latest addition to AWS’ database storage services portfolio and one that fills a well known gap on the stack. Graph databases have been a constant request from the AWS developer community as the demand for those capabilities have increased in modern architectures such as internet of things(IOT) backend or artificial intelligence(AI) models. The release of Neptune brings native graph storage capabilities to the AWS stack complementing an already impressive portfolio.
AWS Neptune is a fully managed graph database service that enables the storing and querying of hierarchical data structures. Like other cloud storage services, Neptune is available across different geographic zones in the AWS platform.
If you follow the graph database space you know that it is inundated with standards and APIs to model and query data to a point that it is incredibly difficult for developers to figure out which approach to use. Neptune provides a clever solution to this challenge by supporting various query languages such as Apache TinkerPop Gremlin or W3C’s SPARKQL using a consistent infrastructure. Developers using Neptune can model datasets using the Property Graph(PG) standard which can be navigates using Gremlin or the Resource description framework which can be queried using the SPARKQL language.
Performance is one of the areas n which Neptune really impresses. The platform is able to execute queries across billions of connected nodes in a graph. At scale, Neptune instances are able to execute more than 100,000 queries per second which is fairly remarkable compared to its competitors.
Neptune was designed with scalability as a first class citizen. It is important to notice that scaling graph databases is far from trivial because of the complexities involved in partitioning connected graphs across different servers. Neptune supports up to 15 read replicas which provide a native model for scaling a graph database on-demand as well as fail over capabilities.
Security is another core principle in the Neptune architecture. The platform enables access control capabilities using the AWS Key Management Services(KMS) as well as a data encryption model based on TLS. Additionally, Neptune instances can be isolated at the network level using AWS VPC.
Developers can launch a Neptune instance directly from the AWS console. The interactions with the platform are abstracted via SDKs in languages such as Java, Python or the AWS CLI.
AWS Neptune is entering the market of cloud graph databases. Neo4J is the undisputed leader in the space with distributions across all major cloud providers. The recently announced Azure CosmosDB also provides a graph database runtime that can be positioned as an alternative to Neptune.