Cuidado com sessions no heroku

Só uma passada rápida por aqui. Estava mexendo no Agendatech para melhorar o processo de participar de uma promoção ou de informar que a pessoa vai em um evento. O problema era o seguinte: quando você clicava no botão, a aplicação redirecionava o usuário para a página do twitter e na volta, mesmo com o usuário já logado, ele era obrigado a clicar novamente para participar da promoção.

A minha solução, não que tenha sido a melhor, foi guardar uma session com o evento e o tipo de botão que ele clicou e, na volta do login realizado no twitter, eu pego esse objeto que ficou guardado na session e faço a associação com o usuário que acabou de se logar. Dessa forma, ele não precisa clicar novamente para confirmar a participação, isso já fica sendo feito automaticamente.

O problema foi que eu guardei na session um objeto do tipo Evento, que é o principal do sistema. Por conta disso ele tem alguns relacionamentos, além dos atributos como data do evento, descrição, etc… Parece que o Heroku não gostou muito do tamanho do objeto que ele teve que serializar e começou a soltar uma exception do tipo CookieOverflow. A solução foi guardar apenas o id do evento na session :).

Bom, essa blogada é mais para eu sempre ficar com isso em mente. Quando você tá num ambiente de Cloud no estilo PAAS da vida, temos sempre que tomar cuidado quando o assunto é guardar coisas aleatorias no disco. Afinal de contas, isso não te pertence mais, pelo menos no plano básico :).

Advertisements