[estudando system design] Markdown Analytics: Como vou tentar tirar essa ideia do papel
Éssa serie de post continua a postagem que se iniciou em Markdown Analytics - Obtenha anaytics em qualquer markdown.
Como funcionaria
O sistema funciona com uma série de 'heartbeats' que diz em tempo real quem está conectado na aplicação, quanto tempo está nela, e etc, de forma automática, algo como requisições automáticas com um intervalo definido de tempo.
Mas como fazer isso via markdow, afinal, javascript é desabilitado nele?
Esta é uma ótima pergunta, e confesso, pensei nela por alguns dias.
Imagem? como fazer ser otimizado pro servidor pra ser atualizada sempre
Link? nao fazem requisições complexas
Mas, se você já estudou conexões de dados, vai pensar o mesmo:
Por quê não ultilizar áudio ou video?
Como assim, Founty?
Muita gente acredita que videos e audios são requisitados de uma vez ao servidor, mas não! Video e áudio podem ser requisitados de forma progressiva, o que viabiliza o streaming de conteúdo, o famoso: baixar mais rápido do que reproduz.
E para streaming de conteúdo, esse tipo de midia pode ser requisitado de forma progressiva ao servidor, "conteúdo sob demanda", assim, gastando menos mémoria: requisições ao servidor de forma automatica baseada no tempo. Estamos chegando a algum lugar!
Ok, mas, como reconhecer a conexão viva?
Ok, temos a midia que é requisitada de tempos em tempos ao servidor, onde podemos configura-lo para sempre retornar uma duração(um byterange) fixo do conteúdo, e agora vamos a como identificar esse conteudo.
Em várias frameworks temos endpoints dinâmicos, algo como /products/[id]
, mas, nesse caso, podemos usar isso para identificar uma conexão, nao um conteúdo.
Exemplo:
Um cliente pedindo pela midia /midia/23
só fara requisições por essa midia. Então podemos ter um endpoint que redireciona pra essa midia, sendo assim, todo cliente pode ter uma url única, mas sempre receber a mesma midia.
Mas como identificar de que projeto é essa midia?
Novamente, rotas dinamicas. Um cliente pode pedir pelo projeto: /projeto/tabnews
, e ser redirecionado para uma midia unica referente a essa conexão a esse projeto.
Ok, mas e agora?
Com tudo isso definido, podemos salvar os dados brutos, como conexões em um banco relacional, e os dados de atualização constante, em um redis(por ser mais rápido). Com isso em mente, podemos ir pra próxima etapa do projeto: A execução
Tentando botar isso em um esquema visual
Você pode baixar o pdf clicando aqui.
E ai galera, animados? algo a acrescentar? deixa ai o feedback pra gente desenvolver essa ideia
Click on the option you want to vote.
Poll created with md-poll