We are using App Engine and Go.
Google recently deprecated Backends in favor of Modules. Now, other than with Python or PHP, with Go for App Engine, you don't map URIs to Scripts. Instead, the pseudo script _go_app is used in app.yaml and URIs are routed to handlers by whatever routing mechanism you implement. The point is, the routing happens from within the compiled Go program.
I wonder, what this means for Modules.
Is there any way of mapping Modules to different Go programs? I'd love to keep the code separate.
Google's docs unfortunately or not of much help: https://developers.google.com/appengine/docs/go/modules/.
Yes - each module can be an entire separate codebase. You can even have each module use a different language. Each module will be able to access the same datastore of course.
You need to make sure to setup your dispatch correctly to map requests to the correct module.
The requests routed via the dispatch are then routed via the goapp registered urls. You will not be able to route requests from one go module to another inside of your default module without using the dispatch because all requests default to the main module.
You can read more about routing requests between modules here: https://developers.google.com/appengine/docs/go/modules/routing