Skip to content
Yikes, it keeps likes!
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
compose Break through 10k CCU Jul 15, 2019
docker Expose environment variable for passing any opts to java runtime Jul 15, 2019
src Add more documentation Jul 14, 2019
.gitignore Initial commit Jul 12, 2019
LICENSE Initial commit Jul 12, 2019
README.md Add more documentation Jul 14, 2019
TODO.md Add more documentation Jul 14, 2019
pom.xml Use spring profiles instead of maven ones Jul 14, 2019

README.md

Like It

Or not, but this is a service for liking things.

Requirements

  • Docker 18.06+
  • docker-compose 3.7+
  • Maven 3.6.1+

Building

mvn clean package docker:build

Running

Locally

To start service on port 8080 locally:

cd <project-root>/compose/local/ && docker-compose up -d && cd -

To check if it works (after a few seconds):

curl localhost:8080/get-likes?name=likeit

Architecture

Overview

Service cluster composed of two subclusters:

  • Scalable worker cluster of borodust/like-it images
  • Scalable redis cluster as a database backend

Worker cluster can be deployed via docker swarm/stack/services which provide load-balanced service out of the box. Each worker node can utilies multiple cores allowing it to scale vertically too. No automation provided for setting up a Redis cluster as of yet.

With proper setup of Redis Cluster this solution provides vertically and horizontally scalable, performant service with availability only bounded by Redis capabilities (which are not perfect for HA systems, but very reasonable).

Like it! can be run with plain-old single non-clustered Redis instance too.

Highlights

You can’t perform that action at this time.