Architecture
Table of Contents
Graphlytic is a graph visualization and analytics platform that can be connected to various graph databases.
Graphlytic Application
Graphlytic is a web application implemented in Java using the Spring Boot framework. Web application is delivered with Jetty Web server and can be started directly without deployment to any web server. Frontend of Graphlytic uses HTML5, JS, and CSS to deliver rich interactive graph environment.
Graphlytic's Metadata
Graphlytic stores metadata like users, groups, permissions, jobs, queries, etc. in a HSQL in-memory SQL database which is delivered with Graphlytic installation. HSQL is embedded in Graphlytic and is started automatically when Graphlytic is started. Graphlytic doesn't store any application metadata into the graph database.
Graph Database
Graphlytic's server installation package does not include any graph database. Graph DB has to be installed separatelly or a cloud graph DB service can be used.
Graphlytic is a visualization and analytics platform used to interactively visualize data from graph databases of various vendors, including:
- Neo4j
- Azure CosmosDB
- Memgraph
- Apache TinkerPop
- AWS Neptun
- JanusGraph
Graphlytic is not changing the data in the graph database if it's not explicitly required by the user. A common use case (among others) is Graphlytic in a read-only mode conencted to an existing graph database to pasivelly analyze the graph data without any interference with existing business processes.
Communication
Browser communicates with Graphlytic over HTTP or HTTPS. Graphlytic uses vendor-specific protocols to communicate with the graph databases, e.g. Bolt protocol for Neo4j, Gremlin API for CosmosDB, TinkerPop Gremlin driver for Apache TinkerPop, etc.
Refer to the security page for details about securing connections.
Integrations
Graphlytic can be integrated with several external systems for various tasks and processes like SMTP integration for self-service password resetting or SAML2 integration for single sign-on. Read more about all the integration options in our Integrations documentation.
Widgets
Graphlytic functionality can be extended with widgets. Widget is group of javascript, css and html files. Be careful about content of these custom files because deploy of these files can cause security vulnerability of Graphlytic. Contact us if you are interested in the implementation of a widget for some specific tasks. We are able to help you with the implementation or deliver a turn-key solution.
Icons
Graphlytic contains a lot of icons but it's possible to upload custom icons. Supported files are: jpg, png, gif. See Using internal or external icons for more details.
ETL engine
Graphlytic has an embedded instance of the Scriptella framework that is the foundation of the ETL engine used for managing automation jobs. The jobs are usually used for data import into a graph database, running queries and sending emails with data results (notifications in case a forbidden pattern is found in the graph, weekly reports, etc.).See ETL jobs for more information.