Skip to content

Instantly share code, notes, and snippets.

@navicore
Last active May 11, 2021 07:27
Show Gist options
  • Save navicore/653df83529580752e60111c62770cee2 to your computer and use it in GitHub Desktop.
Save navicore/653df83529580752e60111c62770cee2 to your computer and use it in GitHub Desktop.
dtlab query with graph helper
@startuml
box "Remote Operator" #LightGreen
entity "HTTP\nClient" as dev1
entity "Browser\nApp" as app1
entity "Mobile\nApp" as app2
end box
box "Internet Boundary" #White
boundary "public IP\nscalable ingress" as ingress
end box
box "Cloud Hosting" #LightBlue
participant "Graph GraphQL API Server\nwith resolvers that\nknow about the\ngraph DB and\nthe REST interface\nto the actor runtime" as gql
participant "Actor REST API Server\ndirect communication\nwith DTs is all\nvia REST" as rest
end box
box "DT Hosting: LIVE OBJECTS LIVE HERE!" #LightYellow
collections "DT PERSISTENT ACTOR RUNTIME,\n(Akka, Erlang,\nsharded PyAkka)" as dts
database "Graph\nLinks" as links
end box
dev1 -> ingress : GrapQL query
ingress -> gql : GrapQL query
group query the graph triples to\nget list of DTs
gql -> links : ask the graph DB for list of DTs in complex query
gql <- links : list of DTs
end
group query the DTs directly now\nthat we know which\nones we are interested in
gql -> rest : HTTP GET
rest -> dts : internal actor protocol
rest <- dts: internal actor protocol
gql <- rest : HTTP Results
gql -> rest : HTTP GET
rest -> dts : internal actor protocol
rest <- dts: internal actor protocol
gql <- rest : HTTP Results
end
ingress <- gql : return single result
ingress -> dev1 : GraphQL query result
@enduml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment