- Make sure you have Docker and Docker Compose installed
- From the root folder, run
chmod +x run-local.sh
- Then run
./run-local.sh
- To stop the services, run
./run-local.sh stop
- Make sure you have Kind installed
- Go to
infra/k8s/kind
folder - Run
./create-cluster.sh
- Move back to the
k8s
folder - Run
kubectl apply -f .
to all the resources - Run
./destroy-cluster.sh
to destroy the cluster
Or simply go to the root folder and run ./run-local-on-kind.sh
.
Then ./run-local-on-kind.sh stop
to stop the services.
I'm using Lens to manage my Kubernetes cluster, but it's not necessary. You can use kubectl
to do the same.
-
SOLID
-
Clean Code
-
Clean Architecture
-
DTO design pattern (Data Transfer Object)
-
Monolith
-
REST API (JAX-RS)
-
RESTFull API Maturity Level 3
-
API Specification (OpenAPI + Swagger)
-
SQL Database (Postgres)
-
NoSQL
-
Database Migrations (Flyway)
-
GraphQL API
-
Health Check (SmallRye / MicroProfile)
-
Caching (Redis)
-
Application Event Bus
-
Distributed Logging
-
Microservices
-
API Gateway
-
Synchronous Communication
-
Asynchronous Communication
-
Event-Driven
-
Microservices Orchestration
-
Microservices Choreography
-
CQRS
-
Event Sourcing
-
Pagination
-
Unit Tests (JUnit)
-
Integration Tests (JUnit + Rest Assured)
-
End-to-End Tests (Karate)
-
Mocks (Mockito)
-
Stubs (Mockito)
-
Spies (Mockito)
-
Coverage check
-
Docker Compose
-
CI (GitHub Actions)
-
Sonar check
-
CD
-
Kubernetes (AWS)
-
Local Kubernetes (Kind)
-
Redis
-
Observability
-
Monitoring (Jaeger)