diff --git a/Architecture.md b/Architecture.md index e9993b4..aa27989 100644 --- a/Architecture.md +++ b/Architecture.md @@ -18,6 +18,7 @@ - store files without duplicates - keep consistent state with main database - serve files to workers on demand +- allow versioning of tasks with revert back feature To meet these requirements, **Storage** and **Database** must be set as bellow. @@ -47,4 +48,7 @@ To meet these requirements, **Storage** and **Database** must be set as bellow. For user friendly access and modifying tasks following information should be stored in database: - list of tasks with their newest version number - for every task and version list of used files (their hashed names) -- for every hash name one human readable filename \ No newline at end of file +- for every hash name one human readable filename + +### Conclusion +Files are internally stored by their `sha1sum` hashes, so it's easy to implement versioning and get rid of files with duplicity content. **Worker** also uses files by their hashes, which is great for local caching without worries about akctual version of given file. On the other hand, **Database** keep info about human readable names, so to users (teachers) are files presented in a friendly way. \ No newline at end of file