I think your question is very hard to answer as it seems you already have a solution that you want to implement but you are trying to find the problem where that solution fits. If you look at your system from a broader perspective it might be easier to see what the best architecture for your system would be.
- How do the microservices in your application interact? Are these glorified libraries that communicate via function calls and return values or are they communicating “online”?
That’s the most important question to answer given the original post, because Zig → Python bindings are not a solution for a micro service architecture. In that type of architecture you would most likely have services that have a language agnostic protocol to communicate between them, in that case creating a server or client in Zig for that micro service should be trivial. Especially since you are already using docker for running your services.
So I don’t think Python bindings is the correct approach for the architecture that you presented us with but in any case I recommend reading Packaging Zig as Python packages and Using the ziglang and setuptools-zig python extension to provide C extensions - #17 by Anthon
Since you own the build system of your users, you should be able to fix the issues that truamel.yaml suffered from. I would still recommend building all wheels as Adria did in Packaging Zig as Python packages - #10 by adria .