E-commerce Backend System

Project Description

This is a comprehensive project that can encompass various microservices and demonstrate inter-service communication effectively.
• Go Microservices (Backend):
o Product Catalog Service: Manages product information, inventory, and pricing (high concurrency read operations).
o Order Processing Service: Handles order creation, payment validation (using a mock payment gateway), and status updates.
o Authentication Service: Manages user accounts, login/logout, and authentication tokens.
• Python Client (Frontend/Gateway):
o Acts as a central API Gateway, communicating with the Go services via gRPC and exposing a user-friendly interface (e.g., using a web framework like Django or Flask for the actual frontend, or just a command-line client).
o Could also manage search functionality with Elasticsearch.



Key Technologies to Incorporate:
• gRPC and Protocol Buffers: Use .proto files to define a clear, strongly-typed service contract that ensures seamless communication between the Go and Python components.
• Docker & Docker Compose: Containerize all services for easy deployment and local orchestration, making the polyglot environment manageable.
• Database: Integrate PostgreSQL, MySQL, or a NoSQL solution for data persistence.
• Observability (Optional but Recommended): Add logging, monitoring, and tracing using tools like Prometheus, Grafana, and Jaeger to understand how your microservices are performing.


• Containerized: Docker
• Project tracker: Jira
• Logging system: Grafana
• Messaging & task queuing: RabbitMQ, Celery
• Programming language: Python Django, AngularJS, Golang
• Microservice: Apache Kafka, gRPC
• CI/CD pipeline:
• Automation:
• Database: PostgreSQL