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 runNOTE: 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 publishImageToLocalRegistryStart 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 -dYou 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