<snip>
1) The Core request processor or the core, which lives on the server
side. The main functionality is to handle disk operations, handles
revisions. Please add more stuff here like how we are going to handle
versioning for binary format and so on . This would be in python
2) The Middleware: Irrespective of the client platform/application, we
hit this layer, which essentially is a API layer to delegate all calls
made to it to the core after enough security checks, gracious error
handling and so on. This is the end point that is available to all the
clients, one web application that can take any related request and
serve back. This could be in Django.
3) The native application or the client app , is the one written in
python handling multiple platforms. Has rich funtionality like
automatic file sync closely tied with the native platform.
4) The Frontend Browser UI or the FE simply, is a browser based thin
client to be a minimal substitute for the native application with as
much features that can be supported by browser predominantly
javascript based.