Nimbus Technology is proposing an automated microservice to handle the reclamation of data storage from cloud storage containers and
show analytics about the effectiveness and reclamation history of the program. This will consist of a backend program
that handles the data reclamation and surrounding choices, a database to store application data, and a web page to display
graphics with useful analytics. The figure to the left depicts a high-level view of the planned architecture of our project.
Backend
A backend program that will analyze containers and remove expired chunks of data. This program will need to be
able to service up to thousands of containers concurrently with little degradation of performance and no risk of race conditions.
This will be implemented in Golang for two reasons: 1) the language offers simple and scalable multi-threading capabilities,
and 2) Golang is also used in many other IBM products, allowing our project to more seamlessly integrate with their work.
Frontend
A web application that will allow IBM employees to view analytics regarding client data, including metrics such as
the amount of data saved per container, a total amount of data saved across all containers, the number of containers currently
being services, and more. This will implemented using React.js and D3. React was chosen due to its high modularity and support,
again making it easier for IBM to integrate our project into their work. D3 was chosen due to its position as the industry standard
for data visualization, with its ability to dynamically create and populate a variety of graphics, which we can put to use by offering
different levels of detail in our analytics display.
Database
A database that will store solution metrics and client container information that won’t be available from AWS. We will be
using MongoDB to store our application data, since its document-oriented nature allows us to store JSON files with little to no work
formatting the data.