Microservices web app that allows users to buy and sell event tickets online using Stripe.
Event Exchange is an e-commerce platform that allows users to buy and sell tickets to specific events. This project is built with a microservices architecture using Next.js, Express.js, TypeScript, and NATS JetStream. It emphasizes minimal dependencies to simplify debugging and enhance code readability.
The application consists of several microservices communicating through NATS JetStream, ensuring decoupled and efficient message passing. Each service is independently deployable and scalable, running in Docker containers orchestrated by Kubernetes.
The core philosophy of Event Exchange is the use of minimal dependencies. By relying less on external libraries, the codebase becomes more transparent and easier to debug. If an issue arises, you can read the code directly instead of navigating through extensive third-party documentation. This approach leads to cleaner, more maintainable code and a deeper understanding of the application's inner workings.
Features:
Technologies:
Features:
Technologies:
Features:
Features:
Technologies:
Clone the Repository:
git clone https://github.com/mmaksi/event-exchange.git
cd event-exchange
Set Up Kubernetes Cluster: Ensure Docker and Kubernetes are running on your machine.
Install Ingress-Nginx Controller: kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.11.2/deploy/static/provider/cloud/deploy.yaml
Update Hosts File: 127.0.0.1 eventexchange.online
Configure Environment Variables:
No need to create local .env
files. Go to each deployment file in the infra/k8s directory, and change the environment variables.
Deploy with Skaffold:
Ensure Skaffold is installed, and run skaffold dev
Access the Application:
Visit http://eventexchange.online
in your browser.
npm test