jhl8109 commented on PR #4783:
URL: https://github.com/apache/zeppelin/pull/4783#issuecomment-2273841229

   @pan3793 
   
   ### Problem
   
   - Each module uses a different protocol, and the files are scattered across 
various locations. This makes management difficult and maintaining consistency 
challenging.
   - For example, Thrift is managed in `zeppelin-interpreter` and proto in 
`zeppelin-jupyter-interpreter`.
   
   _(Therefore, instead of creating a separate zeppelin-protocol module, 
another alternative could be to manage `zeppelin.interpreter.thrift` and` 
zeppelin.interpreter.proto` within `zeppelin-interpreter` to avoid unforeseen 
side effects due to `InterpreterCompletion`.)_
   
   ### Improvement Goal
   
   This PR aims to improve protocol management by starting with separating 
Thrift files into a zeppelin-protocol module.
   
   - `zeppelin-protocol `will manage files generated from `.thrift` and `.grpc` 
files (.java, .py, etc.) collectively. This ensures consistent communication 
methods among interpreters via `zeppelin-protocol`. Additionally, using pom.xml 
to generate protocol-related files helps maintain build integrity without 
running shell scripts manually.
   
   - Interpreters needing communication can add `zeppelin-protocol` as a 
dependency. For instance, it can be difficult to know if proto communication is 
needed by `zeppelin-interpreter` or `zeppelin-jupyter-interpreter`. Adding 
`zeppelin-protocol` as a dependency makes accessing necessary protocol 
dependencies straightforward.
   
   - When new interpreters are added, the `zeppelin-protocol `module 
facilitates the easy expansion of communication features. For example, if 
Zeppelin introduces a new language interpreter, it can utilize the required 
protocol files from `zeppelin-protocol`. Additionally, if Thrift or gRPC 
features are expanded, updating `zeppelin-protocol` ensures that all related 
interpreters can benefit from these enhancements. Moreover, even if new 
protocol files or shell scripts are needed, they are managed within a single 
module, preventing an increase in scattered management points.
   
   Lastly, I understand there may be concerns regarding this PR and am open to 
discussing alternatives. The primary goal is to efficiently manage scattered 
protocol-related shell scripts and generated files. Your feedback is crucial, 
so please feel free to share your thoughts. 
   
   Thanks


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: reviews-unsubscr...@zeppelin.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to