This repository contains an example implementation of the subscription microservice (Ktor flavour) described in 'GitHub Notification Service for Slack '. Please see that document for the specification and requirements.
To run the project locally the easiest is to:
- Run Postgres and Kafka through
docker-compose
- Start the application through Gradle
docker compose -f docker-compose.yml -f docker-compose.local.yml up -d
./gradlew run
NOTE: Gradle does not respect propagating SIGTERM to the running application, so graceful shutdown is not respecting when running this way.
Publish the docker image locally
./gradlew publishImageToLocalRegistry
Start up services (Postgres, Kafka, Schema Registry, etc.) with the app
docker compose -f docker-compose.yml -f docker-compose.local.yml -f docker-compose-app.yml up -d
You can check the readiness or health of the service with
curl --request GET 'http://localhost:8080/readiness'
curl --request GET 'http://localhost:8080/health'
pong
When you're done, stop the services.
docker-compose down --remove-orphans