https://github.com/sagarmaheshwary/microservices-encode-service
https://github.com/sagarmaheshwary/microservices-encode-service
docker ffmpeg golang microservices prometheus rabbitmq s3
Last synced: 29 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/sagarmaheshwary/microservices-encode-service
- Owner: SagarMaheshwary
- License: mit
- Created: 2024-06-02T11:34:18.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-02-13T16:25:45.000Z (8 months ago)
- Last Synced: 2025-02-13T17:31:14.370Z (8 months ago)
- Topics: docker, ffmpeg, golang, microservices, prometheus, rabbitmq, s3
- Language: Go
- Homepage:
- Size: 48.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
# MICROSERVICES - ENCODE SERVICE
Encode service for the [Microservices](https://github.com/SagarMaheshwary/microservices) project.
### OVERVIEW
- Golang
- ZeroLog
- RabbitMQ – Enables asynchronous communication with the [upload service](https://github.com/SagarMaheshwary/microservices-upload-service) and [video catalog service](https://github.com/SagarMaheshwary/microservices-video-catalog-service).
- Prometheus Client – Exports default and custom metrics for Prometheus server monitoring
- AWS S3 – Stores processed video chunks and DASH manifests
- FFmpeg – Handles video encoding and processing
- Jaeger – Distributed request tracing### SETUP
Follow the instructions in the [README](https://github.com/SagarMaheshwary/microservices?tab=readme-ov-file#setup) of the main microservices repository to run this service along with others using Docker Compose or Kubernetes (KIND).
### APIs (gRPC)| SERVICE | RPC | BODY | METADATA | DESCRIPTION |
| -------------------------------------------------------------- | ----- | ---- | -------- | -------------------- |
| [Health](https://google.golang.org/grpc/health/grpc_health_v1) | Check | - | - | Service health check |### APIs (REST)
| API | METHOD | BODY | Headers | Description |
| -------- | ------ | ---- | ------- | --------------------------- |
| /metrics | GET | - | - | Prometheus metrics endpoint |### RABBITMQ MESSAGES
#### Received Messages (Consumed from the Queue)
| MESSAGE NAME | RECEIVED FROM | DESCRIPTION |
| ------------------- | --------------------------------------------------------------------------------- | ------------------------------------------------------------------ |
| EncodeUploadedVideo | [Upload Service](https://github.com/SagarMaheshwary/microservices-upload-service) | Processes uploaded raw video to generate chunks and DASH manifests |#### Sent Messages (Published to the Queue)
| MESSAGE NAME | SENT TO | DESCRIPTION |
| ---------------------- | ----------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
| VideoEncodingCompleted | [Video Catalog Service](https://github.com/SagarMaheshwary/microservices-video-catalog-service) | Notifies video catalog service that video encoding is complete and metadata is available |