Preparing a project for MVP. Technologies are tested there for further use. At this point, the core logic has been replaced with a simple CRUD for the user profile.
The project uses:
- Authentication using KeyCloak.
- Working with PostgreSQL as a database via Quill.
- Migrations are carried out via Liquibase.
- Working with configuration (via ZIO-Config).
- HTTP and gPRC endpoints (via ZIO-HTTP, ZIO-gRPC).
- Logging (via ZIO-Logging + SLF4J2).
- Working with Redis (via ZIO-Redis).
- Handler layer for RPC and REST (with trace annotation and metrics counting) (via ZIO-Aspect).
- Collecting metrics for Prometheus (via ZIO-Metrics).
- Using ULID as a more advanced and compatible analogue of UUID.
- And other technologies...
To deploy the project locally, you need to:
- Go to the
/docker
directory. - Add your KeyCloak to the
docker-compose.yml
file (there is no configuration for it by default). - Run containers of dependent services using the
docker compose up
command. - Override Environment variables for the DB(PostgreSQL), Keycloak and Redis.
- Run the project from the
Main.scala
file.
...