Yeah - adding to what NobbZ said, I think there is confusion about modules vs packages. I have a monolithic module for one of my current projects, which contains several packages. Let’s pretend we have an integration service with a single module: github.com/DeanPDX/integration-service. And in this service, we want to provide integrations for smtp, http, ftp and so forth but we want those to all be separate packages. My project structure might look like this:
/integration-service
- main.go // Might use /cmd/ subfolder if repo contains multiple runtimes
/smtp // Package that handles smtp integration
/http // Package that handles http integration
/ftp // Package that handles ftp integration
To my eye, the separation of duties/code is very clear. We have small packages that comprise a larger module, which encourages re-use of these packages. Hope this helps.