-
Notifications
You must be signed in to change notification settings - Fork 1
Software Architecture Description
The Synthetic File System can be browsed like a normal file system. For example a command like “ls” only involves metadata so the Metadata-Module queries the relevant data from the Metadata-Hub and displays it in regular files and folder. If the user wants to access such data for example with “open” the Data-Module fetches the data from the data storage. Even though the data is stored in different file systems and object stores, they get exposed to the user in a unified way. Which means that the Synthetic File System displays the different data formats under a shared / common namespace.
At this stage, the software is not yet developed to the point where the code components can be determined. This will be submitted as soon as possible to give an overview of the code components.
To be independent of a specific platform and to make sure that every team member has the same run-time environment, we decided to use docker. The choice of programming language is not fixed, but since the team members have different backgrounds and the focus from the industry partners is prototyping, we decided on python. PostgreSQL and GraphQL are chosen to be in synch with the Metadata-Hub, which is an integral part the service. It was clear that we not only wanted to integrate automated tests, but also to use these to guide the development (TDD). While pytest is more popular than unittest, we use unittest, because most of the time it is the first testing framework someone learns when learning python.