Skip to content

Latest commit

 

History

History
34 lines (21 loc) · 1.3 KB

README.md

File metadata and controls

34 lines (21 loc) · 1.3 KB

Go-Vercel-App

Vercel clone written in Golang (Backend)

Tools

  • Backend Languages: Golang
  • Frontend Languages: JavaScript
  • Database: PostgreSQL
  • Message Broker: RabbitMQ
  • Authentication: GitHub OAuth, Email authentication
  • Session Management: Cookies and Sessions
  • Microservices Communication: gRPC
  • Object Storage: MinIO (S3-compatible)

Services

  1. Vercel (web server)

    Vercel serves as the web server that users interact with. It is responsible for handling user requests to upload and deploy projects. Vercel communicates with separate gRPC servers for handling these requests.

  2. Upload (gRPC server)

    The Upload service is a gRPC server responsible for pulling the repository from GitHub and uploading it to MinIO, an S3-compatible object storage service. Once the upload is complete, the Upload service sends the status back to Vercel.

  3. Deploy (gRPC server)

    The Deploy service is another gRPC server that pulls the repository code from S3, builds the project, and uploads the distribution to S3. Similar to the Upload service, it then sends the deployment status back to Vercel.

  4. Request Handler (web server)

    The Request Handler service handles requests made to the project endpoints generated by Vercel.