Before getting stuck in with a KeyLines evaluation, many of our customers have questions about how everything works under the hood.
For this KeyLines FAQ, we thought we would get a KeyLines developer to answer the top 10 questions we get asked by new customers about KeyLines’ Architecture.
Feel free to add any other questions in the comments section!
Yes! You can write your own layouts, if our ones don’t fit your requirements. KeyLines gives you complete control over the x,y positioning of nodes, as well as allowing you to animate position changes to help the user understand how a layout is repositioning the network.
Sure. This requires just a simple change to your customization code (the part of the code that defines what happens when the user interacts with the network).
The Neo4j demo in the SDK includes source code giving examples of how to do this (but the approach works with any database).
We’re often asked about the largest size chart that KeyLines can display, but in general the answer is that displaying thousands of nodes and links – which KeyLines can certainly do – does not often make an effective visualization.
In performance experiments with our WebGL renderer we have created KeyLines charts with several hundred thousand nodes, but you really don’t want to do this in a practical visualization. The number of nodes can quickly become visually overwhelming and doesn’t provide effective insight into your network data. This post explains further: How to Visualize Large Networks.
Yes, this is a good approach to working with a very large network.
KeyLines will happily load networks containing hundreds of thousands of nodes into the client memory and show/hide certain subsets of the data on demand. Again, the SDK has examples of this – see the ‘Filters’ demo.
Remember, you can hold a lot more graph data in the memory than is feasible to show. Analytics will run in all of that data, not just the subset on screen.
This means you get the very direct and interactive experience the user wants, without having to constantly go off to the server to retrieve analysis results.
If you need to, yes you can. Because KeyLines is a client-side component, it gives you the flexibility to design the client-server relationship the way you want it, so you can use SSL or other security mechanisms to protect the data as it travels between server and client.
The only direct impact that KeyLines has on server performance is the need to download the component to the browser when the page that uses KeyLines is first loaded.
Basically, it is as secure as you need it to be.
This is our most asked question! It’s also one of the most vague… Hopefully this will help:
The required object format is documented in detail in the SDK.
How you get the data from the database into the KeyLines format is up to you – which gives you a great deal of flexibility in designing your architecture.
Some KeyLines users are using traditional relational databases; others are using graph databases like Neo4J or Titan; others are using different NoSQL approaches. The SDK includes examples of how to work with different databases, along with full source code.
Working with a Neo4j graph database? You can find more details on how to connect KeyLines to Neo4j in our Getting Started Guide.
Feel free to post any of your own questions in the Comments section, below.