This project is a microservices-based multi-vendor application designed to handle user management, product listing, transactions, and notifications. The architecture is scalable and uses modern cloud technologies.
- User Service: Handles user registration, authentication, and profile management.
- Product Service: Manages product creation, updates, deletion, and retrieval.
- Transaction Service: Processes orders, payments, and transaction logs.
- Notification Service: Sends notifications to users via email or other channels.
- Backend: Node.js, Express.js
- Cloud Technologies:
- AWS CDK for infrastructure as code
- Serverless Lambda for compute
- SNS for notifications
- CloudFront for content delivery
- RDS for relational data storage
- Database: MongoDB, RDS
- Communication: REST APIs / RabbitMQ (for inter-service communication)
- Containerization: Docker
- Authentication: JWT / OAuth2
- Node.js installed
- MongoDB instance running
- AWS CLI configured for deployment
- Docker installed (optional for local containerization)
Each service is organized into its respective folder for ease of development and deployment:
-
User Service:
cd services/user-service
-
Product Service:
cd services/product-service
-
Transaction Service:
cd services/transaction-service
-
Notification Service:
cd services/notification-service
The architecture leverages a cloud-native approach with the following components:
- AWS Lambda: Serverless functions for executing core service logic.
- SNS: Manages notifications across the application.
- RDS: Relational data storage for transactions and other structured data.
- MongoDB: Non-relational database for dynamic content such as products.
- CloudFront: Content delivery network for serving assets quickly.
Contributions are welcome! Please open an issue or submit a pull request.