So had a bit of a thought last night - are we planning to support native multiplatform builds (without qemu emulation)? buildx does this by having a bizarrely complicated client, which I'd actually really like to avoid - it makes client/server side cooperation really fiddly and horrible, and also doesn't fit with how we'd like people to eventually deploy dagger (having a platform team deploy the bits and pieces, and then the dev teams just connect to it).
Ideally, what I'd love would be to just connect to a single dagger engine, that then had multiple worker backends with native architectures. To me this sounds a little bit like the "clustered buildkit" we've discussed before, but the baby case - a small number of engines, no complex scheduling requirements (all steps go to their native architecture).
From the configuration perspective, I'd imagine configuring one dagger "primary", which would be configured to connect to multiple "secondaries" that it could offload other architecture's builds to. From an architecture perspective, with https://github.com/dagger/dagger/issues/5484, we could deploy the "primary" component as a container which does everything except actually running the builds, and then have the "secondary" component deployed alongside it (essentially like a networked buildkit worker?) Then we could configure other "secondaries" as well.
The big issue with something like this would be that we'd need shared storage between all the secondaries. However, this would be signifantly easier than trying to co-ordinate shared storage between multiple buildkits, since there's only one primary to coordinate everything. There is still the question of what that shared storage layer would look like, I don't really have strong opinions (beyond letting people configure what they want).
Curious about people thoughts - it feels like a nice feature to try out "clustered buildkit" work, and test the waters for that.