Create a Data Marvel — Part 4: How To Design the Application

This post will now focus on the application development and the choices and options available to us, as well as what we decided and why.We already knew we wanted to work with Spring and Neo4j before we began the project, but we needed to figure out how best to approach integration between the application and the data layers..First, we needed to consider our limitations and goals for this demo.We planned to submit it to conferences or meetups for presentation, so the whole kit-and-kaboodle needed to be explained in 30–60 minutes (90 minutes, if we had luxury)..We also wanted to be able to live-code as much as possible and really show people how simple it is to use both technologies and what each brought to the table..This means that we needed to code as much as possible within the 30–60min time frame..Plus, we knew we would need some introduction to our project and data source.Could we show what we wanted and give the audience a guidebook for start-to-finish development and inspire them to want to walk out of the session and build it themselves?.This is really the crux of designing good conference content..We needed to find a short, sweet, and simple way to build an application and easily connect to a graph data source..There were a few different paths we could take.We could write a Spring application and use a driver (such as Java) to connect from the application to a Neo4j instance..This means some configuration and setup code to connect the driver to the database and instantiate it in the application.Our other option (which we took) was to use the integration project of Spring Data Neo4j..This project was built by employees and community members to join the capabilities and ease of Spring Data with the power of graphs in a Neo4j backend..It includes pre-configured setup, as well as additional built-in functionality that seemed perfect for our needs..We will talk a bit more in detail about what this project gives us.The Joys of Spring DataSpring Data (per their documentation) aims to “provide a familiar and consistent, Spring-based programming model for data access while still retaining the special traits of the underlying data store.” Now, this simply means that it was designed to plug and play easily with any datastore and not change the datastore’s unique structure or interactions.Spring Data needs to be extremely flexible to work with a variety of data sources — including relational, document, key-value, graph, and others.. More details

Leave a Reply