Skip to content

A world-first general-purpose Reactions Storage service. Flexible configuration with power of thousands RPS

Notifications You must be signed in to change notification settings

Deimvis/ReactionsStorage

Repository files navigation

Reactions Storage

A general-purpose service for storing, managing and retrieving user reactions in efficient yet flexible manner.

User reactions are usually emojis: 🙂😊😭🤯😡👍👎. But it can also be any custom image.

Paper

Features

  • Power for handling thousands of RPS
  • Flexible reactions configuration
  • Optimized database settings
  • Fine-grained server configuration
  • Real-world load simulation with user-defined workloads
  • Comprehensive documentation with step-by-step tutorials
  • Support for 3 different deployment types (local, docker and VM)
  • Integrations with Grafana, Prometheus, Pushgateway and Node Exporters
  • Exhaustive Grafana dashboards out of the box
  • Load testing observations with automated metrics capturing
  • Grafana dashboards backups are saved and loaded with a single command
  • Automated Flame Graphs generation
  • Thorough end-to-end test coverage

Performance

performance

Quick Start

  • Install dependencies
go get
  • Set environment variables
cp .env.template .env
# fill .env file
  • Launch server
. devtools/exenv .env  # export env variables
make run
  • Run tests
. devtools/exenv .env # export env variables
make test

Manual

  • Detailed documentation can be found in the Manual.

Reactions Storage Server

  • Reactions Storage server — an HTTP web server that handles all incoming requests

  • It requires configuration file and environment variables

    (see Reactions Storage Server section of Manual)

Deployment (enables running locally, with docker-compose or via remote VMs)

  • Deployment setup allows you to deploy, start and stop any of supported resources (such as server or database) with a single command in any available environment (local, docker-compose and remotely)

    (see Deployment section of Manual)

Simulation

  • Simulation — a tool written in Go for conducting load tests with user-defined workloads.

    (see Simulation section of Manual)

About

A world-first general-purpose Reactions Storage service. Flexible configuration with power of thousands RPS

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published