Architecture

Table of Contents

Graphlytic is a graph visualization and analytics platform that can be connected to various graph databases.

images/download/attachments/76323571/gl_ecosystem.png

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

  • 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.