Skip to content

Latest commit

 

History

History
37 lines (28 loc) · 2.73 KB

ADR0005.md

File metadata and controls

37 lines (28 loc) · 2.73 KB

Architectural Decision Record

Date

6/1/22

Title

Persistent Storage

Status

Accepted

Context

The architectural decision on which type of persistent data store best fit the needs of the Diversity Council's came down to what provided the most flexibility and benefits of the three main Actors of the system: non-profit organizations, candidates, and administrators. We came to the conclustion that The Spotlight Platform will utilize a Graph DB for storage of persistent data. This allows the millisecond retrieval of data and the ability to build complex relationships for analytical reporting.

Considered Options

Both Graph and Relational Databases where considered for use. The main difference between the two is the way relationships between entities are stored. In a graph database, relationships are stored at the individual record level, while a relational database uses predefined structures, a.k.a. table definitions.

Final Graph Model Initial Entity Relationship Diagram

Decision Drivers

  • Highly Connected Data: We see great value in analyzing the relationships between the different entities, for example the ability to map out relationships between candidates and the services they use from NPO in specific areas. These relational connections are a primary focus of the data and it one of the key benefits of utilizing a Graph Database Model
  • Data Retrieval: Graph databases are optimized for data retrieval. This is another key use for the system as candidates will be retrieving various views of the data for the services that they want to utilize.
  • Flexible Data Model: Graph databases also allow flexible data models. The properties of candidates and NPO's can be flexible, where Relational databases have rigid table definitions.
  • Graph databases are a powerful tool for analyzing interconnected data. This anaylzes allows for dynamic and powerful reporting options allowing us to analyze and produce reports on various key relationships between the actors in the Spotlight Platform.

Decision

Approve the use of GraphDB for the persistent data storage layer.

Trade-Offs/Mitigations

  • Graph databases are still an emerging technology standard and don't have the long history of Relational Databases
  • Higher availability of skilled Relational DB experts than those with expertise in GraphDB technologies.
  • Relational databases are more efficient at storing large numbers of records because of the concrete structure definitions.

Consequences

Ability to predict and map out complex relationships GraphDB solution such as Neo4J or Neptune required