«Hermes» project
Backend for joyeríá Tous, S. A. Used both in online shopping and physical stores.
It is based on microservices using Elixir/Phoenix. The following diagram shows its main components:

There are four microservices: catalogue (product information and price), inventory (product stock), task scheduling and authentication. There is a «Portal» library for inter-service communication, both synchronous (Erlang RPC) and asynchronous (RabbitMQ).
Catalogue: CouchBase and Redis
After adding a product, it is stored both at MySQL and CouchBase (this one asynchronously, using RabbitMQ). To get a product, it is read from CouchBase, using Redis a cache.


Deployment
Merge requests trigger a pipeline that test, build new Docker images, publishes then in a Gitlab registry and launches them using Kubernetes.
