Github user bzz commented on the issue:

    https://github.com/apache/zeppelin/pull/1231
  
    @onkarshedge 
    >> Initial idea the we discussed was that `BittorrentNotebookRepo` 
encapsulates all the things that are required in order to get notebooks.
    
    > Could you please elaborate this point.
    
    Sure. The idea with P2P notebook storage implementation, be that Bittorrent 
or Dat or any other protocol is to have:
     - a self-contained implementation (that possibly can be extracted to maven 
submodule later) 
     - of a single class, that `implements NotebookRepo` protocol
     - and is pluggable, instead or on the side with current `VFSNotebookRepo` 
(for now - pluggable though a simple configuration in `zeppelin-env.sh`, later 
I can imagine that would be also possible though GUI)
    
    In case only some parts of `VFSNotebookRepo` are required (not sure if that 
is the case or not) - we can extract them to the _skeletal implementation_ 
`AbstractFileSystemNotebookRepo` and make `BittorrentNotebookRepo extends 
AbstractFileSystemNotebookRepo`.  
    
    For more details on this approach to design object oriented architecture 
please read infamous Joshua Bloch "Effective Java, 2nd edition" `Item18: Prefer 
interfaces to abstract classes` p.93 
    
    -------
    
    Waiting for the diagram of current architecture and code improvements 
according to styleguide - please ping me and I'll be happy to make another pass 
tomorrow.
    



---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to