Skip to content

Latest commit

 

History

History
68 lines (52 loc) · 4.75 KB

README.md

File metadata and controls

68 lines (52 loc) · 4.75 KB

golang-pipeline Quality Gate Status

bly.li

Welcome to bly.li: A calable Short URL Service in GoLang

Easily create and share memorable links to any webpage with bly.li! Simply input the URL you want to shorten, and our service will generate a concise link that you can share on social media, via email, or anywhere else.

Tech-stack

Key Features:

  • Scalability: Our architecture is designed for horizontal scaling, allowing services to be easily expanded to meet growing demands.
  • Statelessness: All services are stateless, ensuring seamless performance even in the event of node failures. This also makes it easy to maintain and update individual components without affecting the overall system.
  • Flexible Cache Management: Redis can be used as a shared cache cluster or per-node read cache, providing flexibility in scaling depending on your specific needs.
  • MongoDB Scalability: MongoDB can be scaled using a shared cluster or via a cloud-based solution like MongoDB Atlas.

Service Description
Traefik Reverse-Proxy and Load-balancer
Shortn Shortener-Service - Handels new shortn-requests and stores them into redis
BlowUp Redirects to the saved URL - So it blows up the short-url to full and redirects via 302
Front Serves the Angular-Frontend for the stack
Redis The data-platform for this app. Caches shortens and is used for messaging via redis Pub/Sub
MongoDB Used for Persistency

Project-Structur

└──src
    └──services
    |   ├─-front
    │   ├──shortn
    │   └──blowup
    └──shared

front - The Front-End

The frontend is built using Angular. It serves as a single-page-application. For an easy styling the project uses tailwindcss. To manage dependencies and build tasks, we're using Bun as an alternative to npm. Bun performs great and speeds up package installations and building tasks.

Deployment

Deployment works via docker. Images are hosted on dockerhub. Feel free to use the docker-compose.demo.yml as a blueprint for your deployment.

Service URL Tag Description
mensch0mat/bly.li.blowup hub.docker.com latest latest stable version
" hub.docker.com main on push builds from main-branch
mensch0mat/bly.li.shortn hub.docker.com latest latest stable version
" hub.docker.com main on push builds from main-branch