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

Product Roadmap 2018 #1966

Open
manishrjain opened this Issue Jan 1, 2018 · 31 comments

Comments

Projects
None yet
@manishrjain
Member

manishrjain commented Jan 1, 2018

Work In Progress

  • Support Open Cypher
  • Support Gremlin
  • Support GraphQL spec
  • Subscriptions
  • Stronger Type System
  • Backup
  • Python Driver
  • Simplify TLS setup
  • Authentication (full control)
  • Jepsen test integration (http://jepsen.io/analyses/dgraph-1-0-2)
@WolfDan

This comment has been minimized.

WolfDan commented Jan 2, 2018

The GraphQL spec also includes specs like Union and enum types @manishrjain ?

@manishrjain

This comment has been minimized.

Member

manishrjain commented Jan 2, 2018

Yeah, we'll try and support it as close to the spec as possible. I think GraphQL compatibility is needed by a lot of users.

@manishrjain

This comment has been minimized.

Member

manishrjain commented Jan 2, 2018

Would anyone need support for JDBC driver?

@smkhalsa

This comment has been minimized.

smkhalsa commented Jan 2, 2018

With support for Cypher, Gremlin, and GraphQL as the first 3 items on the Roadmap (not sure if the roadmap is in order of priority), is the intention to simply appeal to a broader base of users who may already be familiar with one of them? Or is there a valid reason why a user would want to use all three (e.g. tradeoffs in performance, simplicity for certain types of queries, etc?)

@smkhalsa

This comment has been minimized.

smkhalsa commented Jan 2, 2018

@manishrjain What's your vision for Subscriptions? Do you intend on implementing the GraphQL Subscription spec or provide full reactivity that could enable things like @live queries?

Any ideas on what the API will look like?

@WolfDan

This comment has been minimized.

WolfDan commented Jan 2, 2018

Yeah, we'll try and support it as close to the spec as possible. I think GraphQL compatibility is needed by a lot of users.

That could be amazing! In my case I'm creating a Graphql api with Elixir, have the same schema in the app and the database can simplify the work a lot, I hope this get done soon :D

@akuckartz

This comment has been minimized.

akuckartz commented Jan 2, 2018

Is SPARQL already supported?

@sebastianmacias

This comment has been minimized.

sebastianmacias commented Jan 2, 2018

Great news! I'm really looking forward to Subscriptions. It would be a huge plus if dgraph could borrow some of the offline-first ideas from gun.js, extremely useful for PWAs.

@MichelDiz

This comment has been minimized.

Contributor

MichelDiz commented Jan 2, 2018

"Support GraphQL spec" - So, Will Dgraph have an optional "virtual" Schema type just for GraphQL? @manishrjain

@thetuxedo

This comment has been minimized.

thetuxedo commented Jan 4, 2018

how about key cardinality? such as "Tom Hanks" has a predicate of type to multiple values "actor,director"

@climberwoodi

This comment has been minimized.

climberwoodi commented Jan 16, 2018

@manishrjain Can you tell when approximately Open Cypher support is implemented?

@MichelDiz

This comment has been minimized.

Contributor

MichelDiz commented Jan 16, 2018

Graphcool Graphql IDE turns out to be opensource in november 2017.
i believe that we could attach dgraph-js as a wrapper to graphcool IDE.
Or Dgraph Team observe them as an example to create Dgraph support for GraphQL IDE like.
https://youtu.be/WhYjSFKNhBA

See:
https://github.com/graphcool
https://github.com/graphcool/prisma
https://github.com/graphcool/graphql-playground

Check it out!

@sorenbs

This comment has been minimized.

sorenbs commented Feb 12, 2018

@MichelDiz - thank you for mentioning Graphcool :-)

GraphQL Playground is an open source replacement for GraphiQL and in no way specific to Graphcool or Prisma.

We'd be happy to jump on a call if anybody from Dgraph want an introduction or help integrating it. In the future we'll be adding a plugin system as well as support for custom styling that should make it easier to tie into Dgraph.

@MichelDiz

This comment has been minimized.

Contributor

MichelDiz commented Feb 12, 2018

@sorenbs Hey, I'm interested in the connector for Prisma. But I have no concept of programming with SCALA.

I think Prisma uses the prisma-binding, correct? If not, what are the principles for assembling a connector for the Prisma?

I think this would be enough to make Dgraph align with the graphcool tools.

@Textras

This comment has been minimized.

Textras commented Mar 1, 2018

Any update on how the top 2 items are going (Cypher and Gremlin) now that it is March?

@manishrjain

This comment has been minimized.

Member

manishrjain commented Mar 4, 2018

We're a bit bogged down right now -- but expect to start the work on Cypher in early Q2.

@jimanvlad

This comment has been minimized.

jimanvlad commented Mar 6, 2018

@manishrjain

Would anyone need support for JDBC driver?

We will need to extract tabular data out of dgraph for machine learning models. I assume JDBC would be the best way?

@chengyu-liu-cs

This comment has been minimized.

chengyu-liu-cs commented Mar 6, 2018

It would be really nice to have scala driver in addition to others.

Do you have any plan to support subquery, i.e., something like
image

@manishrjain

This comment has been minimized.

Member

manishrjain commented Mar 6, 2018

Dgraph supports sub-queries like these. We have the concept of query blocks. One query block's results can be used by another.

https://docs.dgraph.io/query-language/#multiple-query-blocks

@chengyu-liu-cs

This comment has been minimized.

chengyu-liu-cs commented Mar 7, 2018

@manishrjain I knew query blocks. Probably I was using wrong term, maybe "subgraph query". Or I was totally wrong.
I was asking in slack how to query "Find all users who have type "user" and who have "visited" places "from" more than N distinct cities* , for example, more than 2 cities.."

Pawan suggested a solution like this and commented that I should do one more step in my own application. It seems the filtering step is not supported by dgraph currently. If I can do one more filter ontop of this result, then I do not need to have my application do that.
{
query(func: eq(type, "user")){
uid
type
visited @groupby(from) {
count(uid)
}
}
}

Another non-supported function is that it is impossible to return or count other scalar values.
The reason is that in my case, name is used as external ID (unique) that identifies my application item. So in the current situation, I have to make another query to get the "name" and combine the two results.

@manishrjain

This comment has been minimized.

Member

manishrjain commented Mar 7, 2018

Dgraph supports filtering among blocks, which is what you're referring to as subquery filtering. The issue with this specific query is that Dgraph currently doesn't have a distinct count feature. That's what is needed to run this query.

Also, I think we need a feature where we can expand out two or more edges at the same level.

{
var(func: eq(type, "user")){
  u as uid
  type
  d as distinct(visited>from)
}
// Then use d to filter u further in another block.
}

@pawanrawal pawanrawal referenced this issue Mar 9, 2018

Open

Grpc-web #2147

@smkhalsa

This comment has been minimized.

smkhalsa commented May 2, 2018

@manishrjain Can we get an update on the roadmap and on which features are currently prioritized? There hasn't been an update in a couple months.

@johndouglascm

This comment has been minimized.

johndouglascm commented May 2, 2018

If you support graphQL, you don't need Prisma. It's a semi-auto-magic ORM for databases needing graphQL. (There may be some other functions, but that's the gist of it).

@manishrjain

This comment has been minimized.

Member

manishrjain commented May 2, 2018

@smkhalsa: We're focused entirely on fixing up the various bugs in the distributed cluster setting. So, features have taken a back seat. We'll start working on them over the next couple of months.

@pmualaba

This comment has been minimized.

pmualaba commented May 27, 2018

Hello, could you please consider adding the following feature #2000 to this roadmap. It is probable low hanging fruit on the implementation side, but enables so much power for our GraphQL+- queries.

@doofin

This comment has been minimized.

doofin commented May 31, 2018

Support for query languages like Gremlin is absolutely necessary,for I think GraphQL has almost no connection with graph database (unable to represent graph theory related things intuitively) .. How about the progress?

@ian19861

This comment has been minimized.

ian19861 commented Jun 20, 2018

No release from two months. Please share the timeline for features

@manishrjain

This comment has been minimized.

Member

manishrjain commented Jun 20, 2018

Preparing a release with many bug fixes. Should have something out this week. Features are not the top priority at the moment.

@zhicwu

This comment has been minimized.

zhicwu commented Sep 3, 2018

@manishrjain

Would anyone need support for JDBC driver?

If GraphQL compatibility is still on the list, it would be great that the JDBC driver can cover both DGraph and GraphQL(without transaction support). The driver can be implemented as an adapter on top of Apache Calcite, or standalone for least dependencies.

Once SQL to GraphQL implemented, maybe you guys can also consider ODBC driver to benefit tools like Power BI :) It is easier to analyze tabular data set while it usually requires more work (expand/flatten/split/merge/transform) for nested JSON.

@billylindeman

This comment has been minimized.

billylindeman commented Oct 16, 2018

@manishrjain Is cypher support still in the works for this year?

@manishrjain

This comment has been minimized.

Member

manishrjain commented Oct 21, 2018

Cypher support won't happen this year. We're working on Backups and then on ACLs. GraphQL official spec takes a higher priority than Cypher.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment