Looking for a project that the Java Meetup group might collaborate on as maybe a “Saturday Hackathon” or just something that we as a group, might offer to the greater java community as an open source project.

I propose creating an Open Source version of a JavaFX based DAG (directed acyclic graph) editor.  Vision is that the nodes (vertices) and edges would be definable through FXML & CSS and represent property maps (Map<String, Object>) of key/value pairs.  The underlying graph/vertex/edge models would follow the Tinkpop3 graph “standard” which can be backed by a number of existing GraphDBs (eg. Neo4j, AWS Neptune, Titan, OrientDB, JanusGraph (backed by IBM), Oracle Big Data Spatial and Graph, et.al).

Nodes and edges could be added, selected and deleted at will.

Use cases:

Graph(DB) visualization

Other use cases are depicted in this document: SomeDAGUseCases

Some things I’d personally like to build out on top of such a foundation:

  • Camel integration composition tool
  • Google Cloud Dataflow composition tool
  • AWS SWF composition tool
  • AWS Step Function composition tool
  • Workflow/Process visualization for banking functions
  • Tools for BigData computation (ie. datapipelines, dataflow and/or Spark/GraphX implementations e.g. AWS Data Pipeline, Google Data Flow, Apache Spark Airflow)

Existing art:

Issue with this is that it uses IBM’s EMF for undo/redo and not a dependency that I would like to include.

I have MUCH respect for Michael.  I think his stuff is over the top!  That said, I was hoping for something a bit simpler, streamlined and focused on graph manipulation that might be EASILY adapted to many other use cases.

Commercial offerings:
License cost:  $9,900 (US) with additional $2,970 one yr maintenance & support for a single developer
More than double those for a “project” license.  A bit steep for an individual starting with an idea.

Keylines:  https://cambridge-intelligence.com/keylines/why/
Tom Sawyer Software: https://www.tomsawyer.com/products/visualization/java/

I have made an early, initial attempt which may or may not be helpful (or useful to build on) as I am not yet a JavaFX expert (but am a JavaFX zealot!).  Code can be found here:

Happy to use that as a base OR simply start from scratch.

Also, here is a mockup : JFXDAGeditor  and some design thoughts: MVVM that I’ve shared with Gluon (a company at the forefront of JavaFX development for mobile).

Some good background/tutorial/code snippets re: JavaFX:

Starter doc on Tinkerpop graph standard: