Beier Cai, director of engineering at Hootsuite: "Hi @here, here is description of this challenge: Build a system using Graph DB to represent microservice dependency graph. Imagine 100s of microserivces calling each other on different API endpoints using REST, how would you know which service depends on another? how often API calls are being made from one service to another? Does one service always call all endpoints of another service, or usually just one or two etc…? This is an open ended challenge, only requirement is mentioned above, use your imagination and do whatever you need to solve the problem mentioned"
I started by looking for a good Graph DB and found out Neo4j. I never had worked with it before, so I used about 8hours of this hackton to read the "Graph Databases" and learn in how to work with it. After that, I deployed my own server at http://ec2-107-23-24-35.compute-1.amazonaws.com:7474/browser/ and started building the application that Beier described.
from Graph Databases Book: Identifying Nodes and Relationships The modeling process can best be summed up as an attempt to create a graph structure that expresses the questions we want to ask of our domain. That is, design for queryability:
Describe the client or end-user goals that motivate our model. He wants to know more about his services interaction.
Rewrite these goals as questions to ask of our domain. He already did this for me: 2.1 - how would you know which service depends on another? 2.2 - how often API calls are being made from one service to another? 2.3 - Does one service always call all endpoints of another service, or usually just one or two etc…?
Identify the entities and the relationship that appear in these questions. microservice [contains] endpoints microservice [calls] microservice:endpoints
After coding a lot, I end Up with the code that I'm sharing in my Gist, the 3 datatables views and with the graphic, that I'm displaying in the image Gallery Picture.
I will release more about how was the experience of this hackton and the results of it at http://santiagocloud.com in the next couple days, thanks for the opportunity and the chance to learn!
Built With
- cypher
- neo4j

Log in or sign up for Devpost to join the conversation.