keviocastro / schools

0 stars 0 forks source link

HTTP Response Cache #37

Open keviocastro opened 7 years ago

keviocastro commented 7 years ago

Como implementar cache para api? Com que banco... redis? O cache ficará em qual camada? Controlador, Repository, Model? Quando e como invalidar o cache?

Pensando em uma solução rápida:

Criar uma estrategia de cache utilizando redis onde as responses são incluídas em cache. Isso gera um questão que é quando invalidar o cache, para que o usuário que estiver consumindo a API não veja dados desatualizados. Para resolver isso podemos criar um comando que esteja agendado no servidor para forçar a atualização desse cache em um curto intervalo de tempo. Também criar um estratégia de cache onde o cache é atualizado sempre que um dado utilizado por uma action do controlador for modificado. Por exemplo: sempre que incluir/alterar/excluir notas dos alunos, o cache do response do end-point que calcula a nota do aluno e as notas dos alunos de uma turma são atualizados.

Sub-tasks para implementar a solução descrita acima.

keviocastro commented 7 years ago

Foi desenvolvido um exemplo de cache para http response. Veja o branch: https://github.com/keviocastro/schools/commits/response-cache

keviocastro commented 7 years ago

Pensando em uma solução rápida:

Criar uma estrategia de cache utilizando redis onde as responses são incluídas em cache. Isso gera um questão que é quando invalidar o cache, para que o usuário que estiver consumindo a API não veja dados desatualizados. Para resolver isso podemos criar um comando que esteja agendado no servidor para forçar a atualização desse cache em um curto intervalo de tempo. Também criar um estratégia de cache onde o cache é atualizado sempre que um dado utilizado por uma action do controlador for modificado. Por exemplo: sempre que incluir/alterar/excluir notas dos alunos, o cache do response do end-point que calcula a nota do aluno e as notas dos alunos de uma turma são atualizados.