Skip to content

gRPC API

OWLGraph supports gRPC connections on port 9080 (configurable) for high-performance client access.

import "github.com/dgraph-io/dgo/v250"
import "google.golang.org/grpc"
conn, err := grpc.Dial("localhost:9080", grpc.WithInsecure())
client := dgo.NewDgraphClient(api.NewDgraphClient(conn))

gRPC supports full ACID transactions:

txn := client.NewTxn()
defer txn.Discard(ctx)
// Query
resp, err := txn.Query(ctx, `{ q(func: type(Dog)) { name } }`)
// Mutate
mu := &api.Mutation{
SetJson: []byte(`{"dgraph.type": "Dog", "name": "Rex"}`),
}
resp, err = txn.Mutate(ctx, mu)
// Commit
err = txn.Commit(ctx)
FeaturegRPC (9080)HTTP (8080)
TransactionsFull ACIDCommitNow only
PerformanceLower latencySlightly higher overhead
StreamingSupportedNot supported
Language supportGo, Java, Python, JSAny HTTP client
Ontology managementNot supported/ontology endpoint

Use gRPC when you need transactions or maximum performance. Use HTTP for ontology management, quick queries, and when simplicity matters.

  • Go: github.com/dgraph-io/dgo (official)
  • Java: io.dgraph:dgraph4j (official)
  • Python: pydgraph (official)
  • JavaScript: dgraph-js (official)

All existing Dgraph client libraries work with OWLGraph. The OWL reasoning layer is transparent to clients — materialization happens server-side.