-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
I agree simple is best. Unfortunately, there isn't really a convention for file system layout for importable packages in a repository (hence why this kind of question comes up somewhat frequently). I've come to like the top level pkg directory to keep the root of the repository cleaner and to make it more clear that Go code lives there instead of other artifacts an application may have (i.e. static resources, a hack directory, etc). It may be controversial, but our team decided to adopt the suggestion provided by https://github.com/golang-standards/project-layout and it's worked very well for us over the years as projects grew.
You can still use internal. Idiomatic Go says that internal would be created under the parent package. net/http provides an example of this. There are some helper functions used by the http package that have been given their own packages and they live under internal. This communicates to the reader that the helpers exist only as an implementation detail required to implement the http package.