A free cometitive platform for gamers
Welcome! 👋
This is where the magic happens
Talking specifically about microservices only, the structure I like to recommend is the following, everything using < and > depends on the domain being implemented and the bounded context being defined.
-
build/: defines the code used for creating infrastructure as well as docker containers.-
<cloud-providers>/: define concrete cloud provider. -
<executableN>/: contains a Dockerfile used for building the binary.
-
-
cmd/-
<primary-server>/: uses primary database. -
<replica-server>/: uses readonly databases. -
<binaryN>/
-
-
db/-
migrations/: contains database migrations. -
seeds/: contains file meant to populate basic database values.
-
-
internal/: defines the core domain.-
<datastoreN>/: a concrete repository used by the domain, for examplepostgresql -
http/: defines HTTP Handlers. -
service/: orchestrates use cases and manages transactions.
-
-
pkg/public API meant to be imported by other Go package.
There are cases where requiring a new bounded context is needed, in those cases the recommendation would be to
define a package like internal/<bounded-context> that then should follow the same structure, for example:
internal/<bounded-context>/internal/<bounded-context>/<datastoreN>internal/<bounded-context>/httpinternal/<bounded-context>/service
Hornex uses a Development Environment that runs inside a Kubernetes cluster on your local machine. Currently this uses:
- Install Docker
- Install
git - Clone the
hornexrepo - Run
devops/scripts/setupuntil successful
After doing the initial setup at least once:
yarn up- Visit The Tilt Web UI to see status
To delete the cluster and start from scratch:
yarn down