A scalable microservices-based CMS backend built with NestJS, GraphQL Federation, and event-driven architecture
9Plus API is a modular, production-ready CMS backend built with microservices architecture. It features GraphQL Federation, event-driven messaging with Kafka, full-text search with Elasticsearch, and a dynamic plugin system.
- 🏗️ Microservices Architecture - GraphQL Federation for service composition
- 🔌 Plugin System - Extensible architecture with dynamic plugin loading
- 🔐 Authentication & Authorization - JWT-based auth with CASL for RBAC
- 🔍 Full-Text Search - Elasticsearch integration for fast search
- 📊 Event-Driven - Apache Kafka for asynchronous messaging
- 📝 Observability - Structured logging and monitoring
- 🐳 Container-Ready - Docker and Docker Compose support
- Node.js 20+ or Bun 1.0+
- Docker and Docker Compose
- Git with submodule support
git clone --recursive https://github.com/devhoangkien/9plus-api.git cd 9plus-api bun run env:setup bun run install:all docker compose up -d📖 For detailed setup instructions, see Development Guide
- Development Guide - Setup, configuration, and workflow
- Architecture - System design and microservices
- Authentication & Authorization - Security implementation
- Task Checklists - Implementation guides
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature - Make your changes and add tests
- Run linting:
bun run app:lint - Commit with conventional commits:
git commit -m 'feat: add new feature' - Push to your fork:
git push origin feature/my-feature - Open a Pull Request
We follow Conventional Commits:
feat:- New featurefix:- Bug fixdocs:- Documentation changesrefactor:- Code refactoringtest:- Adding testschore:- Maintenance tasks
This project is licensed under the MIT License - see the LICENSE file for details.
Built with these amazing open-source technologies:
- NestJS - Progressive Node.js framework
- GraphQL - Query language for APIs
- Apache Kafka - Event streaming platform
- Elasticsearch - Search and analytics engine
- PostgreSQL - Relational database
- Redis - In-memory data store
- Docker - Container platform
⭐ If you find this project helpful, please consider giving it a star!
Made with ❤️ by DevHoangKien