AnthonyHonstain / kotlin-dropwizard-inventory-service

Experimental Dropwziard 3.13.6 service in Kotlin 1.4.32 for modeling basic inventory (location+SKU+qty) and other metadata in a microservice. Built on https://dropwizard.io/ in Kotlin

Home Page:https://honstain.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

KotlinInventoryService

This was an experimental project for me to play with Dropwizard and Kotlin.

Toy microservice that models inventory information in a supply chain context.

I abandoned my work with Javalin and switched to Dropwizard https://bitbucket.org/honstain/javalin-inventory-service-v2/src/master/

Dependencies

Dropwizard

Version 2.0.23 Java framework for high-performance RESTful web services.

Dropwizard Metrics

I use the Dropwizard Metrics library to report to Graphite

There is a grafana dashboard record in grafanaDashboard.json that you can use to recreate the dashboard. This was the guide I used to run Grafana locally (Grafana and Graphite via docker-compose) https://www.linode.com/docs/guides/install-graphite-and-grafana/

Kafka

This uses the Dropwizard version of the Kafka client that utilizes the Apache Kafka client.

WARNING The integration test assumes there is a Kafka cluster to interact with, if you want to change that you can modify product-service-test-config.yml

Docker Compose

I have included in the folder docker-compose_stuff the configuration for the Grafan+Graphite stack and the Kafka+Kowl stack.

How to start the KotlinProductService application

  1. Run mvn clean install to build your application
  2. Start application with java -jar target/kotlin-inventory-service-1.0-SNAPSHOT.jar server config.yml
  3. To check that your application is running enter url http://localhost:7080

Health Check

To see your applications health enter url http://localhost:7081/healthcheck

Project Links

About

Experimental Dropwziard 3.13.6 service in Kotlin 1.4.32 for modeling basic inventory (location+SKU+qty) and other metadata in a microservice. Built on https://dropwizard.io/ in Kotlin

https://honstain.com/


Languages

Language:Kotlin 100.0%