Dealer-360i — Dealership ERP Platform
A multi-tenant ERP for automotive dealerships — 16 NestJS microservices behind an Apollo GraphQL gateway, RabbitMQ async messaging, real-time bidding on Redis pub/sub, and multi-cloud blob storage.
Overview
Dealer-360i is a production-grade, multi-tenant ERP for automotive dealerships covering the full vehicle lifecycle — inventory, leads, contracts, real-time bidding, scheduling, payments, and notifications. The system is built as 16 NestJS microservices behind an Apollo GraphQL gateway, communicating asynchronously via RabbitMQ and broadcasting real-time state through Redis pub/sub and Pusher.
I architected the platform end-to-end at Algotix AI — from service decomposition and gateway design to blob storage abstraction across three clouds and Authorize.Net payment integration with PDF invoicing. Engagement increased 220% post-launch.
Architecture
Microservices
The backend is organized as a Docker-orchestrated monorepo of independently deployable services:
| Service | Responsibility |
|---|---|
| api-gateway | Apollo GraphQL gateway, JWT/Passport auth, GraphQL subscriptions over Redis |
| inventory-svc | Vehicle inventory, listings, search, stock state |
| bidding-svc | Real-time auction bidding, bid validation, pub/sub fan-out |
| contract-svc | Sales contracts, dynamic field templating, PDF invoicing |
| payment-svc | Authorize.Net credit/e-check payments, webhook processing |
| lead-svc | Lead capture, qualification, and assignment |
| dealership-svc | Multi-tenant dealership accounts and configuration |
| users-svc | Authentication, RBAC, profile management |
| mailer-svc | Transactional emails via Nodemailer |
| notification-svc | In-app notifications and delivery state |
| pusher-svc | Pusher-channel fan-out for real-time client updates |
| scheduler-svc | Cron jobs and scheduled tasks |
| twillio-svc | SMS notifications and OTP delivery |
| store-svc | Multi-cloud blob abstraction (Azure / Huawei OBS) |
| appointment-svc | Test-drive bookings and dealership appointments |
| dynamic-content-svc | CMS-style content blocks for marketing pages |
| contact-svc | Contact form intake and routing |
Highlights
Real-time Bidding
Built real-time bidding and notifications via GraphQL subscriptions layered on top of Redis pub/sub, with Pusher as a fallback fan-out channel for clients behind restrictive networks. Bid validation and ordering happen inside bidding-svc so the gateway stays stateless.
Async Messaging
Every cross-service call goes through RabbitMQ via amqp-connection-manager, eliminating tight coupling between services and giving each domain its own queue, retry policy, and dead-letter handling.
Payments
Integrated Authorize.Net for both credit-card and e-check flows with secure webhook handling inside payment-svc. Generated PDF invoices with pdf-lib + @pdf-lib/fontkit and shipped them through mailer-svc on payment confirmation.
Multi-Cloud Storage
store-svc exposes a single upload/download API on top of Azure Blob Storage and Huawei OBS, picking the backend per-tenant. This made it possible to deploy the same image into customer-specific cloud regions without forking the codebase.
Frontends
- Marketing app — Next.js 13 + Apollo Client + Redux Toolkit + Bootstrap, with Twilio Conversations, Google Maps, and Datadog RUM for performance tracking.
- Seller app — Next.js + Formik + Redux Toolkit, focused on dealer workflows (inventory upload, bid management, contract signing).
DevOps
- All services Dockerized with environment-segregated compose files (
dev,local.dev,combined.dev,stage). - GitHub Actions pipelines for build, lint, and image publishing.
- Kubernetes manifests for production rollout.
- Multi-cloud deploys across AWS, Azure, and GCP — cutting build & release time 30%.
Impact
- 15+ microservices live in production
- 220% increase in user engagement post-launch
- 30% faster build and release cycle via multi-cloud GitHub Actions pipelines
// more projects
Let's work together
Have a project in mind? Reach out and let's build something great.