Skip to content

v0.3.0: The Microservices Monorepo Update

Choose a tag to compare

@yash-pouranik yash-pouranik released this 21 Mar 18:47
· 1130 commits to main since this release

Welcome to the biggest architectural update in urBackend history! We have completely rewritten our foundation to transition from a single monolithic backend to a highly scalable NPM Workspaces Monorepo.

🔥 Major Architectural Changes

  • Monolith Deprecated: The old legacy-backend has been completely removed in favor of a modern, independent microservices architecture.
  • NPM Workspaces Setup: The entire repository is now structured using npm workspaces for seamless dependency sharing and local execution via cleanly separated apps/* and packages/* directories.
  • Shared Core Library (@urbackend/common): All Mongoose models, Express middlewares, Redis queues, and database configurations have been extracted into a central packages/common component to strictly enforce DRY principles.

🏗️ New Services Introduced

  • dashboard-api (Control Plane): A dedicated, secure backend isolated for the SaaS admin panel. It exclusively handles project creation, API key rolling, and developer authentication.
  • public-api (Data Plane): A highly scalable, decoupled backend handling all project-related public data routing, schema validation, and Supabase storage requests via API keys.

🛠️ Developer Experience & DevOps

  • Concurrent Dev Mode: Boot the whole stack! Running npm run dev at the root directly powers up the React frontend (web-dashboard), dashboard-api, and public-api simultaneously with colored logging.
  • Advanced Docker Orchestration: Fully containerized environment. A single docker-compose up spins up MongoDB, Redis, and both API microservices equipped with properly cached, multistage Dockerfiles.
  • Isolated Rate Limiting: Dedicated rate limiting and robust error catchers deployed independently for public and admin routes.

Upgrade Note for Contributors:
Please run a fresh npm install at the root directory to properly symlink the new workspaces before starting the development server.