This project is the code behind a 2021 blog where I was Revisiting Clojure by building and testing the news feed service in Clojure on Donkey which is an HTTP server that is built on Vert.x
Dependencies that this project uses.
library | group | artifact | version | url |
---|---|---|---|---|
mysql | org.jdbi | jdbi3-core | 3.16.0 | Jdbi 3 Developer Guide |
mysql | mysql | mysql-connector-java | 8.0.23 | MySql Connector/J |
redis | redis.clients | jedis | 3.5.1 | repo |
cassandra | com.datastax.oss | java-driver-core | 4.10.0 | 4.10.0 |
cassandra | com.datastax.oss | java-driver-query-builder | 4.10.0 | repo |
cassandra | com.datastax.oss | java-driver-mapper-runtime | 4.10.0 | repo |
elasticsearch | org.elasticsearch.client | elasticsearch-rest-high-level-client | 7.11.1 | Java High Level REST Client |
json | org.clojure | data.json | 1.0.0 | repo |
Some dev friendly commands to get going.
lein test
lein uberjar
docker build -t feed13:1.0 .
cd ../k8s
kubectl create -f feed13-deployment.yaml
Create outbound is reactive (i.e. returns before completing) and both create participant and friends are synchronous.
entity | operation | throughput (RPM) | mean latency (ms) | 99th percentile latency (ms) |
---|---|---|---|---|
outbound | create | 15,098 | 3 | 12 |
participant | create | 2,567 | 17 | 31 |
friends | create | 1,732 | 18 | 29 |