Skip to content

a toy project with Phoenix LiveView and RabbitMQ. Download anghami songs using a *Needlessly* scalable,fault tolerant ,robust and distributed service

Notifications You must be signed in to change notification settings

Mohamedemad4/hiremeAnghami

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hire ME ANGHAMI

  • download anghami songs easily on a backend that's built to scale to the moon 🚀📈🌕
  • Uses Elixir, RabbitMQ and Redis worker queues. Fully distributed out of the box! (why? I am gonna run this on a $5 VPS alsan lol)

hiremeanghami_service_diag.svg

Tech Stack

Services

Venator

Spawns and controls Selenium workers that download the songs.

API

  • publish a message that looks like {"song_url":"https://play.anghami.com/song/25770989"} to queue download_requests
  • consume downloaded_songs and wait for a job completion message that should look like {"spng_state":"OK","song_id":"25770989","song_media_name":"Anghami_25770989.mp3"} to be published
  • the song should be located in the SONG_DIR_PATH under the name of the song_media_name param

Omen

Frontend and basic Backend that talks to Venator and back. Keep the user happy while things are happening in the background.

Deployment

  • docker-compose up this will build and setup everything.
  • open localhost:4000 in your browser.

About

a toy project with Phoenix LiveView and RabbitMQ. Download anghami songs using a *Needlessly* scalable,fault tolerant ,robust and distributed service

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published