Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[feature] Which DB backend do we want to see? #851

Closed
lumjjb opened this issue May 17, 2023 · 10 comments
Closed

[feature] Which DB backend do we want to see? #851

lumjjb opened this issue May 17, 2023 · 10 comments
Labels
enhancement New feature or request long-term Things for the future
Milestone

Comments

@lumjjb
Copy link
Contributor

lumjjb commented May 17, 2023

Discussions @ https://docs.google.com/document/d/1wk7N9zggygz1Xx7qgx1aEt3niPpAEkRpdQi5i7k0Cj8/edit#

With the new GraphQL interface, we are able to implement multiple database as GUAC's GraphQL backend.

Right now we've implemented an in-memory database, and its tests, which will act as a conformance suite to the GraphQL backend. This puts us in a position to now have multiple DB implementations to the GraphQL interface.

Considerations of implementation of the backend will include:

  • The ask from community members that are looking to run GUAC (prioritizing production use cases)
  • The number of contributors who are interesting in implementing the use case
  • The license of the DB libraries
  • Usage factors / considerations / trade-offs
    • speed
    • scale
    • ease of use

Note that the backends may be any type of database, from graph DBs (ArrangoDB / Neo4j) to more "traditional" DBs (Postgres, Spanner), or even a file system!

We'd like to get community input on what Databases they'd like to see in GUAC, with additional information about their use case and scale if available!

@lumjjb lumjjb added enhancement New feature or request long-term Things for the future labels May 17, 2023
@lumjjb lumjjb pinned this issue May 17, 2023
@anoop2811
Copy link

I think if a traditional database could Postgres is available, that would be great if we dont lose any capability with GUAC for using it instead of a graphdb. The reason is mostly already talent available within the company and ease of using a cloud vendor that supports it.

@lumjjb
Copy link
Contributor Author

lumjjb commented May 22, 2023

I've added a doc for community discussion and added your comments in @anoop2811 !

https://docs.google.com/document/d/1wk7N9zggygz1Xx7qgx1aEt3niPpAEkRpdQi5i7k0Cj8/edit#

@sjbodzo
Copy link

sjbodzo commented Jun 2, 2023

There are projects built on Postgres to expose it as a Graphql layer, and they can take you pretty far. Id also recommend looking at surreal db. It has lots of interesting features, including the ability to run embedded or standalone.

@mihaimaruseac
Copy link
Collaborator

I just looked at the Go package for surreal and it's at an old version. Probably this can be fixed with a non-beta release on surreal.

Though, there's also a potential issue that surreal's license is not yet fully Open Source, so it is unclear if we will be able to use it.

@lumjjb lumjjb added this to the GUAC v0.2 milestone Jun 22, 2023
@mihaimaruseac
Copy link
Collaborator

I've tested ArangoDB and several other databases and the result is that ArangoDB is significantly faster. Full post at https://mihai.page/testing-graph-databases/

@jens1o
Copy link

jens1o commented Jan 15, 2024

It'd be great if we could use CloudSQL, also.

@pxp928
Copy link
Collaborator

pxp928 commented Jan 15, 2024

It'd be great if we could use CloudSQL, also.

We do have support for ENT. That should be able to support CloudSQL (for databases that can be managed by CloudSQL)

@jens1o
Copy link

jens1o commented Jan 15, 2024

It'd be great if we could use CloudSQL, also.

We do have support for ENT. That should be able to support CloudSQL (for databases that can be managed by CloudSQL)

Ah nice to know, thanks @pxp928 ! I'm looking into that.

@pxp928
Copy link
Collaborator

pxp928 commented Jan 15, 2024

More information on the various supported backends here: https://github.com/guacsec/guac?tab=readme-ov-file#graphql-backends

We are working to update the documentation site with all the updates.

@lumjjb
Copy link
Contributor Author

lumjjb commented Apr 2, 2024

We discussed this during the recent community meeting. We have decided to put efforts behind Ent and the inmem/keyvalue backend in the time being until we hit a stable interface (i.e. 1.0)

@lumjjb lumjjb closed this as completed Apr 2, 2024
@mihaimaruseac mihaimaruseac unpinned this issue Apr 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request long-term Things for the future
Projects
None yet
Development

No branches or pull requests

6 participants