Micro-Servicing Linked Data
Architectural choices
Charles Ivie – Director at Semantic Integration Ltd.
charles.ivie@semanticintegration.co.uk
Connected Data London
Micro Services
Micro Services
Micro Services
Micro Services
Micro Services
Micro Services
Micro Services
Micro Services
So what is our recipe for…
• Linked Data
• Fluid data model (Like a Triplestore)
• Powerful query language (Sparql - esk)
• Distinct proper Micro Services
• Use standards where possible
Linked Data
Micro Services
Linked data = URI’s
Linked Data
Micro Services
GraphQL auto configuration
GraphQL query
Example query
HyperGraphQL
http://hypergraphql.org
“An open source GraphQL query
interface for RDF triple stores.”
• Open Source
• Configurable to any Sparql endpoint
• Fully abstracted away from Triplestore
• Responds with JSON-LD
HyperGraphQL
http://hypergraphql.org/graphiql
Try it out on our demo server…
Linked to DBpedia data

Charles Ivie

Editor's Notes

  • #3 Lots of well documented and understood features and benefits. Dedicated storage solution per micro service Not without complexity in construction in link rich data models Not great for a truly fluid data model Popular well understood architecture
  • #4 Often the micro services data is brought together in an aggregation layer, creating the full picture and UX
  • #5 Code changes made to a micro service obviously need to be realissed through the architecture
  • #6 Code changes made to a micro service obviously need to be realissed through the architecture A very complex network of MicroServices can actually cause a lot of engineering effort
  • #7 Innovation in making services easier to manage has improvved the complexity But not solved it completely
  • #8 In some cases the microservices themselves become interlinked, and dependancies start to occur
  • #9 In some cases the microservices themselves become interlinked, and dependancies start to occur
  • #10 Linked data in a triplestore means the model is fluid Many of the same problems still exist Triplestore goes down, everything goes down A breaking change in the data could effect all services
  • #12 No large database underneith Bu how do we aggregate? How do we perform complex querying? How is the data linked?
  • #13 No monolithic data source (Triplestore) Data stored as simple local JSON documents We have tried to marry the two worlds Use distinct URI’s for all the semantic web reasons () Implicitly linked data
  • #14 Added in GraphQL for complex rich querying
  • #15 GraphQL implemented to understand HATEOAS JSON Schema’s can be read by GraphQL to automatically understand the model Automatically can understand the Micro services, with no besboke implementaiton per micro service New services can be added without re-development of GraphQL Model can change Dynamic CMS app can automatically change with the model
  • #16 The result of this is a product catalogue navigable from a GraphQL query
  • #17 Another approach we have been looking into for GraphQL has resulted in an open source project
  • #18 Try it out