diff --git a/rfcs/048-support-nebula-graph-as-backend-storage.md b/rfcs/048-support-nebula-graph-as-backend-storage.md new file mode 100644 index 0000000..983c852 --- /dev/null +++ b/rfcs/048-support-nebula-graph-as-backend-storage.md @@ -0,0 +1,59 @@ +- Feature Name: Support Nebula Graph +- Start Date: 2022-04-16 +- RFC PR: [amundsen-io/rfcs#0000](https://github.com/amundsen-io/rfcs/pull/0000) (after opening the RFC PR, update this with a link to it and update the file name) +- Amundsen Issue: [amundsen-io/amundsen#1816](https://github.com/amundsen-io/amundsen/issues/1816) + +# Nebula Graph Support + +## Summary + +The support includes the Nebula Graph data builder and a new proxy for Nebula Graph in metadata service. + +## Motivation + +Metadata can be published into Nebula Graph from Amundsen databuilder now and this RFC is going to make metadata retrieval API work for Nebula Graph in metadata service. + +## Guide-level Explanation (aka Product Details) + +The goal of this RFC is to add additional loaders, publishers, and serializers to the library suite so that Nebula Graph is supported. + +## UI/UX-level Explanation + +N/A + +## Reference-level Explanation (aka Technical Details) + +To support Nebula Graph in metadata service, a new proxy for Nebula Graph is added. + +To support Nebula Graph in the databuilder, several new components are added: + +- Nebula Extractor +- Nebula Search Data Extractor +- Nebula CSV Loader +- Nebula CSV Publisher +- Nebula Serializer +- Nebula Sample Data Loader + +They worked quite similarly to those for Neo4j(it even speaks a dialect of OpenCypher) but for one thing: Nebula is not schemaless like Neo4j, that is, a lable(named tag) or a edge type should be created before its referred in a query. + +Instead of maintaining versioned schema by user(with extra interfaces introduced), the poposed design is to parse the schema from data being published, do schema check and DDL change when needed automatically, where the schema information will be in single source of truth: the data model of the databuilder. + +## Drawbacks + +The RFC adds support for another datastore which brings in additional components and increases the code size of the repo. + +## Alternatives + +For the schema auto adaptation, one alternative is to add an extra interface/utility to manage Nebula Graph schema. + +## Prior art + +N/A + +## Unresolved questions + +N/A + +## Future possibilities + +None so far.