The reason of internal

Hi! I’m trying to figure out the structure of this project, and I’m having some difficulties.

By what logic was the code sent to the internal? It seems to me that some code located at the root of the project can also be sent to internal. Thanks!

To reduce the public surface area of your API:

Go developers tend to be careful about the surface area of the packages they expose to the public. Once something is public, you can’t refactor it without potentially breaking things that now depend on it. So what do you do when you have something you want to be able to reimport in your own packages but don’t want to expose it to the public? Use internal packages.

Yeah, I know how internal works. The question is a little different :slightly_smiling_face: