Hi, All I am writing this mail to discuss about our work in the next stage, some trends we should follow, or even what Dubbo should be next.
Approximately from last year, there have been some discussions and thoughts in the community about how Dubbo should following or leading the tech trend in its area. With this goal in mind, I recently spent some time trying to dive deep in some related techs. Here I want to express some of my points regarding the two most discussed topics in our community, they are, HTTP/2 protocol and Cloud Native. 1. http/2. Considering that gRPC has done a great job upon HTTP/2 and the extraordinary influence it achieved in the industry. I think it should be a non-negligible part for us to take into consideration when talking about this topic. Actually, I would suggest we first consider integrating gRPC into our framework to 1. to leverage Dubbo's more powerful service management ability 2. quickly bring Dubbo HTTP/2 support. This is suitable to be done in 2.7.x. In the long run, I think we may need to provide built-in HTTP/2 support, which may require a standard HTTP/2 application layer protocol (compatible with GRPC can be an option), and introduce application level streaming semantics. This is suitable to be done in 3.x. 2. Microservices and Cloud Native. When comes to this topic, the most obvious thing to notice is the mismatch of the service model between Dubbo and Microservices architecture. Our definition of services is based on Interface, one Interface is intercepted as a service, while the Microservices architecture, Application is the first-class citizen, you can consider an Application as a service, interfaces are only see as metadas inside the service. This mismatch makes service discovery, service management and any introps very difficult or even impossible. I like the Microservice's model more than Dubbo's and I think we should start reconsidering our service model. I would restrict the discussion about Cloud Native to K8S here, I continuely see issue asking about Dubbo running on K8S. I think this question on root is about how to leverage the service discovery and container orchestration capabilities provided by K8S. This time I think we should not just stay in discussion, instead, we need to go to the next phase to come up with some practical solutions, make them part of our milestone and realize them. If you agree with the opinions I put forward above, I am glad to try to write down some of my recent researchs into a draft proposal. Then we can further discuss on some of the details and finally make it a practical one. Ken
