paul-rogers opened a new issue #12218:
URL: https://github.com/apache/druid/issues/12218


   Druid provide wonderful support for many kinds of extensions. However, one 
incomplete area is the ability to define a new service which looks like it is 
part of Druid. This issue describes the full set of changes required. For 
convenience of review, the actual work is spread across several PRs.
   
   Here, we define "service" as something that introduces a new REST endpoint. 
Druid also calls these "roles" or "servers". A server is generally started with:
   
   `<druid> server <server-name`
   
   So, the first set of revisions allow the `CliCommandCreator` to create a 
`ServerRunnable` command within the `server` command group. Existing mechanisms 
allow the service to build a web app (albeit with a distastefully large amount 
of copy/paste of code. That is something to clean up in a later PR.)
   
   This new web service may introduce public APIs, and it may have private 
endpoints used by other services. The `PrivateAPI` annotation provides a code 
way to mark the private endpoints.
   
   The new web service can define a `NodeRole`, and register itself in ZK, but 
none of Druid's existing REST or SQL APIs for learning about servers will know 
about this service. To solve this, we move the set of known node roles out of a 
static variable and into a Guice multi-binder. We then modify the various 
server-related APIs to use the list of roles from Guice.


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to