A basic Jenny project has 3 packages;
cmdfor keeping the main executable.
transportpackage where we put service definitions in their respective versions as their package names.
- And a final
fooas package that implements the
FooServiceinterface defined in the transport version.
. ├── cmd │ └── userservice │ └── main.go ├── transport │ └── v1 │ ├── jenny.go │ └── swagger.yaml └── user └── user.go
Putting aside everything else the transport package with the version numbers is propbably the best convention that we stumbled upon. The jenny cli app expects this project layout however you can change this layout by passing flags in the command line.