Skip to content

Commit

Permalink
Memgraph integration (#68)
Browse files Browse the repository at this point in the history
  • Loading branch information
cybermaggedon authored Nov 28, 2024
1 parent bbcdf81 commit 9db457b
Show file tree
Hide file tree
Showing 6 changed files with 674 additions and 1 deletion.
491 changes: 491 additions & 0 deletions public/memgraph.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
32 changes: 32 additions & 0 deletions src/simple-editor/model-params/GraphStore.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,38 @@ const GraphStore: React.FC<GraphStoreProps> = ({ value, onChange }) => {
</Stack>
</MenuItem>

<MenuItem value="memgraph">
<Stack
direction="row" spacing={2}
divider={
<Divider orientation="vertical"
flexItem
/>}>
<Stack sx={{width: 100}} direction="row"
alignItems="center" justifyContent="center"
>
<img src="memgraph.svg" width="80"/>
</Stack>
<Box sx={{
width: '36rem'
}}>

<Typography variant="body2"
sx={{ whiteSpace: 'wrap' }}
>

Unlike alternatives, Memgraph uses a
modern efficient architecture that
operates at C++ speed with high throughput
and low latency. It is perfect for high
velocity environments of 1000 transactions
per second or more.

</Typography>
</Box>
</Stack>
</MenuItem>

</Select>

</FormControl>
Expand Down
2 changes: 2 additions & 0 deletions templates/components.jsonnet
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
"graph-rag": import "components/graph-rag.jsonnet",
"triple-store-cassandra": import "components/cassandra.jsonnet",
"triple-store-neo4j": import "components/neo4j.jsonnet",
"triple-store-memgraph": import "components/memgraph.jsonnet",
"llamafile": import "components/llamafile.jsonnet",
"ollama": import "components/ollama.jsonnet",
"openai": import "components/openai.jsonnet",
Expand All @@ -34,6 +35,7 @@
// FIXME: Dupes
"cassandra": import "components/cassandra.jsonnet",
"neo4j": import "components/neo4j.jsonnet",
"memgraph": import "components/memgraph.jsonnet",
"qdrant": import "components/qdrant.jsonnet",
"pinecone": import "components/pinecone.jsonnet",
"milvus": import "components/milvus.jsonnet",
Expand Down
81 changes: 81 additions & 0 deletions templates/components/memgraph.jsonnet
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
local base = import "base/base.jsonnet";
local images = import "values/images.jsonnet";
local url = import "values/url.jsonnet";
local memgraph = import "stores/memgraph.jsonnet";

memgraph + {

"memgraph-url":: "bolt://memgraph:7687",
"memgraph-database":: "memgraph",

"store-triples" +: {

create:: function(engine)

local container =
engine.container("store-triples")
.with_image(images.trustgraph)
.with_command([
"triples-write-neo4j",
"-p",
url.pulsar,
"-g",
$["memgraph-url"],
"--database",
$["memgraph-database"],
])
.with_limits("0.5", "128M")
.with_reservations("0.1", "128M");

local containerSet = engine.containers(
"store-triples", [ container ]
);

local service =
engine.internalService(containerSet)
.with_port(8080, 8080, "metrics");

engine.resources([
containerSet,
service,
])

},

"query-triples" +: {

create:: function(engine)

local container =
engine.container("query-triples")
.with_image(images.trustgraph)
.with_command([
"triples-query-neo4j",
"-p",
url.pulsar,
"-g",
$["memgraph-url"],
"--database",
$["memgraph-database"],
])
.with_limits("0.5", "128M")
.with_reservations("0.1", "128M");

local containerSet = engine.containers(
"query-triples", [ container ]
);

local service =
engine.internalService(containerSet)
.with_port(8080, 8080, "metrics");

engine.resources([
containerSet,
service,
])


}

}

65 changes: 65 additions & 0 deletions templates/stores/memgraph.jsonnet
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
local base = import "base/base.jsonnet";
local images = import "values/images.jsonnet";

{

"memgraph" +: {

create:: function(engine)

local container =
engine.container("memgraph")
.with_image(images.memgraph_mage)
.with_limits("1.0", "1000M")
.with_reservations("0.5", "1000M")
.with_port(7474, 7474, "api")
.with_port(7687, 7687, "api2");

local containerSet = engine.containers(
"memgraph", [ container ]
);

local service =
engine.service(containerSet)
.with_port(7474, 7474, "api")
.with_port(7687, 7687, "api2");

engine.resources([
containerSet,
service,
])

},

"memgraph-lab" +: {

create:: function(engine)

local container =
engine.container("lab")
.with_image(images.memgraph_lab)
.with_environment({
QUICK_CONNECT_MG_HOST: "memgraph",
QUICK_CONNECT_MG_PORT: "7687",
})
.with_limits("1.0", "512M")
.with_reservations("0.5", "512M")
.with_port(3010, 3000, "http");

local containerSet = engine.containers(
"lab", [ container ]
);

local service =
engine.service(containerSet)
.with_port(3010, 3010, "http");

engine.resources([
containerSet,
service,
])

},

}

4 changes: 3 additions & 1 deletion templates/values/images.jsonnet
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,7 @@ local version = import "version.jsonnet";
prometheus: "docker.io/prom/prometheus:v2.53.2",
grafana: "docker.io/grafana/grafana:11.1.4",
trustgraph: "docker.io/trustgraph/trustgraph-flow:" + version,
qdrant: "docker.io/qdrant/qdrant:v1.11.1"
qdrant: "docker.io/qdrant/qdrant:v1.11.1",
memgraph_mage: "docker.io/memgraph/memgraph-mage:1.22-memgraph-2.22",
memgraph_lab: "docker.io/memgraph/lab:2.19.1",
}

0 comments on commit 9db457b

Please sign in to comment.