numaproj / numaflow-go

Numaflow Golang SDK
Apache License 2.0
46 stars 11 forks source link

chore: separate server for each service #70

Closed yhl25 closed 1 year ago

yhl25 commented 1 year ago

fixes #74

whynowy commented 1 year ago

Can we bring the versioning back to the proto definition? I feel like it's not right by removing it. The versioning is used to have the ability to define different contract in the future, while with backward compatibility. As practices, most of the good projects define their proto contracts with versioning.

https://github.com/envoyproxy/envoy/blob/main/api/envoy/api/v2/core/protocol.proto https://github.com/solo-io/gloo/tree/main/projects/gloo/api/v1 https://github.com/dapr/dapr/tree/master/dapr/proto/components/v1 https://github.com/spiffe/go-spiffe/tree/main/v2/proto/spiffe/workload https://github.com/istio/api/blob/master/mesh/v1alpha1/proxy.proto

vigith commented 1 year ago

their proto files are complex; hence they need it? do we really have a use-case where we will use versioning?

whynowy commented 1 year ago

their proto files are complex; hence they need it? do we really have a use-case where we will use versioning?

Complexity shouldn't be a factor of doing versioning or not. Versioning give us a chance to run backward compatible code. Assume some day, there's a breaking change on the contract (v2), the platform code may have a chance to know which version of code the ud container is running, and use corresponding version of client to do the communication.

vigith commented 1 year ago

@yhl25, please do the non-critical asks in follow-up PR, i am going to merge this PR because it is a huge PR, and all major comments have been addressed.