This repo includes examples for three types of services with private packages included.
These include:
- Bun based microservices for external request handling
- Python based microservices for data-intensive processes
- Go based microservices for highly-concurrent operations
- Turborepo
- Bun and Hono based Microservices
- Python and FastAPI based Microservices
- Go and Gin based Microservices
Each service has a test suite implementation for unit testing and load testing with k6.
Github Actions based CI/CD is also included.
These prerequisites will be verified via a preinstall script.
- Bun must be installed on your machine.
- Python must be installed on your machine.
- Go must be installed on your machine.
- k6 must be installed on your machine.
- Docker must be installed on your machine.
- Skaffold must be installed on your machine.
- You should have a Kubernetes cluster with an active kubectl configuration.
bun install
If you have any issues, please refer to the Prerequisites section.
bun run dev
bun run lint
bun run format
bun run test
bun run perf-test
If you encounter issues with Python virtual environments or after moving/renaming the project directory, use this command to reset all Python virtual environments:
bun run reset-python-venvs
This will find all Python packages in the project, remove their virtual environments, and reinstall all dependencies using Poetry.
We use Docker and Turborepo to build the apps.
bun run build
This repo includes generators for the following:
- Bun based microservices
- Python based microservices
- Go based microservices
- Bun based packages
- Go based packages
- Python based packages
Run the following commands from the root of the repo.
bun run gen:bun-service
bun run gen:python-service
bun run gen:go-service
bun run gen:bun-package
bun run gen:go-package
bun run gen:python-package
turbo prune
does not yet support Bun, so we use--no-frozen-lockfile
when installing dependencies for Bun services.