URL Shortener Microservice Serverless

Ce projet est un raccourcisseur d’URL serverless développé en Go, conçu pour démontrer la création d’une architecture scalable et sans serveur sur AWS Lambda à l’aide de AWS SAM. Il gère la génération de liens courts et l’accès aux URL originales à partir d’un identifiant unique.

Golang AWS Docker Redis Postgresql

project

Objectif

L’objectif principal de ce projet était de concevoir un microservice autonome et performant dédié à la gestion des URL au sein d’une application distribuée plus large. L’idée était de déléguer cette tâche spécifique à un service indépendant, afin de réduire le couplage, améliorer la scalabilité et simplifier la maintenance du code.

Enjeux techniques

L’un des principaux enjeux techniques du projet était de concevoir un service léger et performant, avec une image Docker d’environ 10 Mo et un démarrage quasi instantané, inférieur à 100 ms. Le microservice devait être totalement portable, capable de se déployer aussi bien sur Docker, Kubernetes que sur AWS Lambda via AWS SAM, sans modification du code. L’architecture a été pensée pour rester claire, modulaire et maintenable, en suivant les bonnes pratiques du langage Go : utilisation du répertoire internal/ pour isoler la logique métier, séparation explicite des adapters (persistence, transport, logger, etc.), et définition d’interfaces (ports) afin de faciliter les tests unitaires et la substitution des implémentations selon les besoins.

project project

Architecture du projet

Le microservice suit une approche Clean Architecture composée de quatre couches : Domain (entités et interfaces), App (logique métier indépendante), Adapters (implémentations concrètes comme HTTP ou stockage) et Cmd (point d’entrée du service). Cette structure rend le code plus clair, testable et facile à faire évoluer.

project project project project project

project

Stack technique

Le microservice a été développé en Go 1.21 et peut être déployé facilement sur AWS Lambda via AWS SAM.