Description
Originally Zeppelin has been working only with local file system. With recent persistence layer abstraction and addition of NotebookRepo interface, Zeppelin had a choice of a file system to write and read from. However, user can choose only one storage system (i.e. either local or some remote storage system) by changing ZEPPELIN_NOTEBOOK_STORAGE environment variable. On the other hand, it would be much better to have the best of both worlds, meaning to work with local copy, while keeping remote storage in sync with local changes.
Current proposal is to have new class (i.e. NotebookRepoSync) that will synchronize the storage systems when Zeppelin starts, and further old functionalities (save(), remove()) will be implemented in sync aware way, meaning save and remove from both storage systems.