Architecture

Graphlytic is a graph visualization solution that can be connected to any Neo4j graph database endpoint.

Graphlytic

Graphlytic is a web application implemented in Java. Web application is delivered with Jetty Web server and can be started directly without deployment to any web server. Frontend of Graphlytic uses HTM5, JS, CSS.

Neo4j Server

Graphlytic visualize data from any Neo4j graph database endpoint. You can use your existing databases or install a new one. Existing data in the database stays unchanged because Graphlytic don't execute any change to existing data if it is not required by user. For better safety and data separation we recommend to use separate Neo4j database to work with Graphlytic.

Communication

Browser communicates with Graphlytic over HTTP or HTTPS. Graphlytic uses Bolt protocol to communicate with Neo4j Server.

Read security to know more 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.

images/download/attachments/57183118/graphlytic_architecture.png

Widgets

Graphlytic functionality can be extended by widgets. You can create and deploy your own 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.

Icons

Graphlytic contains Using internal or external icons but you can use your own icons in Graphlytic visualizations. Supported files are: jpg, png, gif.

ETL engine

ETL engine contains several drivers for databases: Postgresql, MySQL, MSSQL, Oracle, DB2, Derby, H2, HSQLDB, Sybase, XSL. Not all JDBC drivers are included in Graphlytic.

ETL engine contains other drivers: CSV, Neo4j, Mail, Groovy, Log, Text, XPath and more. ETL engine is configured in XML.

Using combination of driver you can create many scenarios. Here is a small overview of using scenarios which can be configured. Some examples are in Administration manual (see ETL job examples).

images/download/attachments/57183118/etl_1.png

Example 1: Load data from SQL database by SQL query and insert every record of result into CSV file.

images/download/attachments/57183118/etl_2.png

Example 2: Load data from CSV into Neo4j using Cypher (LOAD CSV command).

images/download/attachments/57183118/etl_3.png

Example 3: Load data from SQL database by SQL query, transform every record of result by Groovy (for example remove special characters) then insert every transformed record into CSV file. After this load data from CSV into Neo4j using Cypher (LOAD CSV command).

images/download/attachments/57183118/etl_4.png

Example 4: Load data from Neo4j using Cypher query, transform every record of result by Groovy and append every record into result string. Send string as html mail to several recipients.

Graphlytic data

Graphlytic stores its data into HSQL database which is delivered with Graphlytic installation. HSQL is embedded in Graphlytic and it starts automatically when Graphlytic is started. Graphlytic doesn't store any data into Neo4j database. Graphlytic only created indexes in Neo4j database.