Architecture Overview - pratchaya-maneechot/service-exchange GitHub Wiki
The platform is designed as a microservices-based task marketplace where users can post tasks and other users (taskers) can bid on and complete these tasks. The system handles the full lifecycle from task creation to payment and reviews.
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β Web Client β β Mobile Client β β Admin Panel β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β β β
ββββββββββββββββββββββββΌββββββββββββββββββββββββ
β
βββββββββββββββββββ
β API Gateway β
β (Kong/Nginx) β
βββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Service Mesh β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Microservices Layer β
βββββββββββββββ¬ββββββββββββββ¬ββββββββββββββ¬βββββββββββββββββββ β
βUser Service βTask Service βBid Service βPayment Service β
βββββββββββββββΌββββββββββββββΌββββββββββββββΌβββββββββββββββββββ β
βReview Svc βNotification βLocation Svc βSupport Service β
βββββββββββββββ΄ββββββββββββββ΄ββββββββββββββ΄βββββββββββββββββββ β
β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Event Bus (Kafka) β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Data Storage Layer β
βββββββββββββββ¬ββββββββββββββ¬ββββββββββββββ¬βββββββββββββββββββ β
βPostgreSQL βMongoDB βRedis Cache βPostGIS β
βββββββββββββββ΄ββββββββββββββ΄ββββββββββββββ΄βββββββββββββββββββ β
- Domain-Driven Design (DDD): Services are organized around business capabilities
- Event-Driven Architecture: Loose coupling through asynchronous messaging
- Database per Service: Each service owns its data
- API Gateway Pattern: Single entry point for clients
- Circuit Breaker Pattern: Resilience and fault tolerance
Layer | Technology Options |
---|---|
API Gateway | Kong, Nginx, AWS API Gateway |
Backend Services | Node.js (TypeScript), Python (FastAPI), Go, Java (Spring Boot) |
Message Broker | Apache Kafka, RabbitMQ, AWS SQS/SNS |
Databases | PostgreSQL, MongoDB, Redis, PostGIS |
Container Orchestration | Kubernetes, Docker Swarm |
Service Mesh | Istio, Linkerd |
Monitoring | Prometheus + Grafana, ELK Stack |