├── .env.example ├── .github └── workflows │ ├── build&push.yml │ └── lint&test.yml ├── .gitignore ├── .golangci.yml ├── .pre-commit-config.yaml ├── Makefile ├── README.md ├── api ├── openapi.yaml └── protobuf.proto ├── bin └── .gitkeep ├── check-go-generate.sh ├── cmd ├── migrator │ └── main.go └── server │ └── main.go ├── docker-compose.yml ├── generated ├── generate.go ├── openapi │ ├── client.go │ ├── server.go │ ├── spec.go │ └── types.go └── protobuf │ ├── protobuf.pb.go │ └── protobuf_grpc.pb.go ├── go.mod ├── go.sum ├── integration_tests ├── ping_test.go ├── suites │ └── run_server_suite.go └── users │ ├── application │ ├── crud_test.go │ └── suite_test.go │ └── infrastructure │ ├── postgres_test.go │ └── redis_test.go ├── internal ├── application │ ├── grpc_server.go │ ├── http_server.go │ ├── interfaces.go │ ├── orders │ │ ├── create.go │ │ └── handlers.go │ ├── suite.go │ └── users │ │ ├── create.go │ │ ├── get.go │ │ ├── handlers.go │ │ └── users_test │ │ ├── create_test.go │ │ ├── get_test.go │ │ └── suite_test.go ├── config.go ├── domain │ ├── orders │ │ ├── errors.go │ │ ├── item.go │ │ ├── order.go │ │ └── statuses.go │ ├── products │ │ └── product.go │ └── users │ │ └── user.go ├── infrastructure │ ├── orders │ │ ├── in_memory.go │ │ └── postgres.go │ ├── products │ │ ├── in_memory.go │ │ └── postgres.go │ └── users │ │ ├── in_memory.go │ │ ├── postgres.go │ │ └── redis.go ├── migrate.go ├── run.go └── service │ └── orders │ ├── create.go │ └── service.go ├── migrations ├── 000001_add_users_table.down.sql ├── 000001_add_users_table.up.sql ├── 20240919100509_add_products_table.down.sql ├── 20240919100509_add_products_table.up.sql ├── 20240919131123_add_orders_table.down.sql └── 20240919131123_add_orders_table.up.sql ├── pkg ├── contextkeys │ └── contextkeys.go ├── echomiddleware │ ├── echomiddleware_test │ │ └── sloglogger_test.go │ ├── requestcontext.go │ ├── sentrycontext.go │ ├── shared.go │ └── sloglogger.go ├── environment │ └── type.go ├── logger │ ├── logger_test │ │ └── setup_test.go │ └── setup.go ├── postgres │ ├── cluster.go │ ├── connection.go │ └── transaction.go └── sentry │ └── init.go └── profiles └── .gitkeep /.env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/.env.example -------------------------------------------------------------------------------- /.github/workflows/build&push.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/.github/workflows/build&push.yml -------------------------------------------------------------------------------- /.github/workflows/lint&test.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/.github/workflows/lint&test.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/.gitignore -------------------------------------------------------------------------------- /.golangci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/.golangci.yml -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/.pre-commit-config.yaml -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/README.md -------------------------------------------------------------------------------- /api/openapi.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/api/openapi.yaml -------------------------------------------------------------------------------- /api/protobuf.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/api/protobuf.proto -------------------------------------------------------------------------------- /bin/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /check-go-generate.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/check-go-generate.sh -------------------------------------------------------------------------------- /cmd/migrator/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/cmd/migrator/main.go -------------------------------------------------------------------------------- /cmd/server/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/cmd/server/main.go -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/docker-compose.yml -------------------------------------------------------------------------------- /generated/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/generated/generate.go -------------------------------------------------------------------------------- /generated/openapi/client.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/generated/openapi/client.go -------------------------------------------------------------------------------- /generated/openapi/server.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/generated/openapi/server.go -------------------------------------------------------------------------------- /generated/openapi/spec.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/generated/openapi/spec.go -------------------------------------------------------------------------------- /generated/openapi/types.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/generated/openapi/types.go -------------------------------------------------------------------------------- /generated/protobuf/protobuf.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/generated/protobuf/protobuf.pb.go -------------------------------------------------------------------------------- /generated/protobuf/protobuf_grpc.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/generated/protobuf/protobuf_grpc.pb.go -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/go.mod -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/go.sum -------------------------------------------------------------------------------- /integration_tests/ping_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/integration_tests/ping_test.go -------------------------------------------------------------------------------- /integration_tests/suites/run_server_suite.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/integration_tests/suites/run_server_suite.go -------------------------------------------------------------------------------- /integration_tests/users/application/crud_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/integration_tests/users/application/crud_test.go -------------------------------------------------------------------------------- /integration_tests/users/application/suite_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/integration_tests/users/application/suite_test.go -------------------------------------------------------------------------------- /integration_tests/users/infrastructure/postgres_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/integration_tests/users/infrastructure/postgres_test.go -------------------------------------------------------------------------------- /integration_tests/users/infrastructure/redis_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/integration_tests/users/infrastructure/redis_test.go -------------------------------------------------------------------------------- /internal/application/grpc_server.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/internal/application/grpc_server.go -------------------------------------------------------------------------------- /internal/application/http_server.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/internal/application/http_server.go -------------------------------------------------------------------------------- /internal/application/interfaces.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/internal/application/interfaces.go -------------------------------------------------------------------------------- /internal/application/orders/create.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/internal/application/orders/create.go -------------------------------------------------------------------------------- /internal/application/orders/handlers.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/internal/application/orders/handlers.go -------------------------------------------------------------------------------- /internal/application/suite.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/internal/application/suite.go -------------------------------------------------------------------------------- /internal/application/users/create.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/internal/application/users/create.go -------------------------------------------------------------------------------- /internal/application/users/get.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/internal/application/users/get.go -------------------------------------------------------------------------------- /internal/application/users/handlers.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/internal/application/users/handlers.go -------------------------------------------------------------------------------- /internal/application/users/users_test/create_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/internal/application/users/users_test/create_test.go -------------------------------------------------------------------------------- /internal/application/users/users_test/get_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/internal/application/users/users_test/get_test.go -------------------------------------------------------------------------------- /internal/application/users/users_test/suite_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/internal/application/users/users_test/suite_test.go -------------------------------------------------------------------------------- /internal/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/internal/config.go -------------------------------------------------------------------------------- /internal/domain/orders/errors.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/internal/domain/orders/errors.go -------------------------------------------------------------------------------- /internal/domain/orders/item.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/internal/domain/orders/item.go -------------------------------------------------------------------------------- /internal/domain/orders/order.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/internal/domain/orders/order.go -------------------------------------------------------------------------------- /internal/domain/orders/statuses.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/internal/domain/orders/statuses.go -------------------------------------------------------------------------------- /internal/domain/products/product.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/internal/domain/products/product.go -------------------------------------------------------------------------------- /internal/domain/users/user.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/internal/domain/users/user.go -------------------------------------------------------------------------------- /internal/infrastructure/orders/in_memory.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/internal/infrastructure/orders/in_memory.go -------------------------------------------------------------------------------- /internal/infrastructure/orders/postgres.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/internal/infrastructure/orders/postgres.go -------------------------------------------------------------------------------- /internal/infrastructure/products/in_memory.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/internal/infrastructure/products/in_memory.go -------------------------------------------------------------------------------- /internal/infrastructure/products/postgres.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/internal/infrastructure/products/postgres.go -------------------------------------------------------------------------------- /internal/infrastructure/users/in_memory.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/internal/infrastructure/users/in_memory.go -------------------------------------------------------------------------------- /internal/infrastructure/users/postgres.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/internal/infrastructure/users/postgres.go -------------------------------------------------------------------------------- /internal/infrastructure/users/redis.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/internal/infrastructure/users/redis.go -------------------------------------------------------------------------------- /internal/migrate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/internal/migrate.go -------------------------------------------------------------------------------- /internal/run.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/internal/run.go -------------------------------------------------------------------------------- /internal/service/orders/create.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/internal/service/orders/create.go -------------------------------------------------------------------------------- /internal/service/orders/service.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/internal/service/orders/service.go -------------------------------------------------------------------------------- /migrations/000001_add_users_table.down.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE users; -------------------------------------------------------------------------------- /migrations/000001_add_users_table.up.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/migrations/000001_add_users_table.up.sql -------------------------------------------------------------------------------- /migrations/20240919100509_add_products_table.down.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE products; -------------------------------------------------------------------------------- /migrations/20240919100509_add_products_table.up.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/migrations/20240919100509_add_products_table.up.sql -------------------------------------------------------------------------------- /migrations/20240919131123_add_orders_table.down.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE orders; -------------------------------------------------------------------------------- /migrations/20240919131123_add_orders_table.up.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/migrations/20240919131123_add_orders_table.up.sql -------------------------------------------------------------------------------- /pkg/contextkeys/contextkeys.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/pkg/contextkeys/contextkeys.go -------------------------------------------------------------------------------- /pkg/echomiddleware/echomiddleware_test/sloglogger_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/pkg/echomiddleware/echomiddleware_test/sloglogger_test.go -------------------------------------------------------------------------------- /pkg/echomiddleware/requestcontext.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/pkg/echomiddleware/requestcontext.go -------------------------------------------------------------------------------- /pkg/echomiddleware/sentrycontext.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/pkg/echomiddleware/sentrycontext.go -------------------------------------------------------------------------------- /pkg/echomiddleware/shared.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/pkg/echomiddleware/shared.go -------------------------------------------------------------------------------- /pkg/echomiddleware/sloglogger.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/pkg/echomiddleware/sloglogger.go -------------------------------------------------------------------------------- /pkg/environment/type.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/pkg/environment/type.go -------------------------------------------------------------------------------- /pkg/logger/logger_test/setup_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/pkg/logger/logger_test/setup_test.go -------------------------------------------------------------------------------- /pkg/logger/setup.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/pkg/logger/setup.go -------------------------------------------------------------------------------- /pkg/postgres/cluster.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/pkg/postgres/cluster.go -------------------------------------------------------------------------------- /pkg/postgres/connection.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/pkg/postgres/connection.go -------------------------------------------------------------------------------- /pkg/postgres/transaction.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/pkg/postgres/transaction.go -------------------------------------------------------------------------------- /pkg/sentry/init.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gonozov0/go-ddd-template/HEAD/pkg/sentry/init.go -------------------------------------------------------------------------------- /profiles/.gitkeep: -------------------------------------------------------------------------------- 1 | --------------------------------------------------------------------------------