Proposal: Transition to Distributed Model (Option B) for vtuber_image.v1
To improve coordination and ensure that vtuber-image remains the source of truth for its own gRPC interface, we propose adopting the Distributed Model.
Current Problem
- Contract Drift:
vtuber-contracts currently maintains a manual copy of image.proto, which has already drifted from the implementation in vtuber-image.
- Naming Mismatch: The service and message names in
vtuber-contracts (ImageGeneratorService) did not match the initial implementation in vtuber-image (ImageGenerator), leading to integration failures.
- Buf Version Inconsistency: The
ci.yml in vtuber-contracts uses inconsistent versions of buf, causing "generated/ is out of sync" errors.
What we have done in vtuber-image
- Aligned all names to match
vtuber-contracts standards:
service ImageGeneratorService
message GenerateRequest
message GenerateResponse
- Verified the build with these new names.
Proposed Solution (Distributed Model)
- Source of Truth:
vtuber-image will now be the official owner of proto/vtuber_image/v1/image.proto.
- Registry Integration: We should use Buf Schema Registry (BSR) or a similar mechanism to allow
vtuber-contracts to depend on the vtuber-image protos without manual copying.
- CI Alignment: Synchronize
buf versions to 1.68.4 across all CI jobs in vtuber-contracts.
Requested Actions for vtuber-contracts
This change ensures that any future updates to the image generation API are driven by the service that implements it, preventing the "buf can't see across repo" issue by using a proper registry.
Proposal: Transition to Distributed Model (Option B) for
vtuber_image.v1To improve coordination and ensure that
vtuber-imageremains the source of truth for its own gRPC interface, we propose adopting the Distributed Model.Current Problem
vtuber-contractscurrently maintains a manual copy ofimage.proto, which has already drifted from the implementation invtuber-image.vtuber-contracts(ImageGeneratorService) did not match the initial implementation invtuber-image(ImageGenerator), leading to integration failures.ci.ymlinvtuber-contractsuses inconsistent versions ofbuf, causing "generated/ is out of sync" errors.What we have done in
vtuber-imagevtuber-contractsstandards:service ImageGeneratorServicemessage GenerateRequestmessage GenerateResponseProposed Solution (Distributed Model)
vtuber-imagewill now be the official owner ofproto/vtuber_image/v1/image.proto.vtuber-contractsto depend on thevtuber-imageprotos without manual copying.bufversions to1.68.4across all CI jobs invtuber-contracts.Requested Actions for
vtuber-contractsproto/vtuber_image/v1/image.proto.buf.yamlto depend on thevtuber-imagemodule (once published to BSR).ci.ymlto use a consistentbufversion (recommended:1.68.4).buf generateand commit the updatedgenerated/files to resolve the "out of sync" errors.This change ensures that any future updates to the image generation API are driven by the service that implements it, preventing the "buf can't see across repo" issue by using a proper registry.