Comming from C#/Python/Dart/NodeJS/PHP background I had really difficult time figuring out how to modularize my first few GO projects. Problem was that what ever I tried compiler complained about unknown modules.
Where all I wanted was split the code up a bit into logical chunks like I'm used to do in other programming languages. Finally figured out the in order for compiler to recognise "local" modules you need to set up a project with a domain and a name in your
go.mod file like
module rocinante.systems/birokrat for example.
After that you can import modules with
rocinante.systems/birokrat prefix into your files. Happy times...