/abacus

A highly-scaleable and stateless counting API

Primary LanguageGo

Abacus - A simple counting API written in Golang

Introduction

Abacus is a simple counting API written in Golang. It is a simple REST API that allows you to create, read, update and delete counts. It is a simple project that I created to learn Nim Go and to get a feel for the language. I currently use it on my personal website to keep track of the number of visitors.

Todos

  • Documentation
  • K8 Deployment (GCP CloudRun + Redis on OCI)
  • impl /create endpoint which creates a new counter initialized to 0 and returns a secret key that can be used to modify the counter via the following endpoints
    • /delete endpoint
    • /set endpoint
    • /reset (alias to /set 0)
    • /update endpoint (updates the counter x)
  • SSE Stream for the counters? Low priority.
  • Tests
  • Rate limiting (max 30 requests per 3 second per IP address)
  • Create Python & JS Wrappers