Skip to content

Instantly share code, notes, and snippets.

@oleander
Created August 30, 2011 20:13
Show Gist options
  • Save oleander/1181890 to your computer and use it in GitHub Desktop.
Save oleander/1181890 to your computer and use it in GitHub Desktop.
Radiofy.se flowchart

Radiofy.se flowchart

Radiofy.se flowchart

  1. Radiokanalerna kontrolleras och fetchas kontinuerligt m.h.a event machine. Tack Kim.
  2. Låten skickas vidare till respektive tjänst (Spotify, Grooveshark och iTunes), var vid en länk fås. Spot-projektet används för att hämta information från Spotify.
  3. All data skickas nu till en kö vid namn Beanstalkd för vidare bearbetning.
  4. En worker jobbar här med att bearbeta låtarna som lagts i kön.
  5. Informationen sparas i en MySQL-databas, övergången till PostgreSQL är inte långt borta.
  6. Låten sparas till minnet m.h.a memcached, för att göra låten lättillgänglig.
  7. Låten sparas här till vår fulltextsökmotor, Solr, som även agerar primärdatabas. Utan Solr skulle sökmotor på siten ej vara möjlig och laddningstiderna skulle varit 10x högre.
  8. Låten läggs till i respektive radiokanals Spotify-spellista.
  9. Slutligen så skickas låten till Beacon Push för att snabbt och enkelt kunna pushas ut till din webbläsare.
  10. Någon sekund senare syns låten i din webbläsare i form av ett Gritter-meddelande.
  11. Vår Ruby On Rails-applikation hämtar nu låtarna direkt från Solr.
  12. Låtar som nyligen lagts in finns att hämta i minnet.
  13. I extrema fall så görs en vända till vår MySQL-databas, något vi i största möjliga mån vill undvika då dessa requests är förhållandevis långsamma.
  14. Informationen kan nu hämtas direkt från vår nginx-server.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment