2012-08-04 13 views
9

Mi backend está en Postgres. Estoy usando Scala para construir API de él.Scala + Play + Akka. ¿Hay una necesidad de Backbone.js?

Cada vez que hay un cambio en la base de datos, deseo que se notifique a mi extensión de Chrome. Tengo algunas preguntas con respecto a esto:

  1. ¿Debo implementar websockets aquí o hacer sondeos largos?
  2. Si hay sockets web, ¿hay algún buen ejemplo de cómo hacerlo usando scala + play + Akka y javascript?
  3. Creo que tengo que implementar algo llamado como un patrón de observador que notifica a mi extensión de Chrome si hay algún cambio en los datos. ¿Hay algún otro patrón que deba seguir para realizar tal cosa con el DB mínimo por encima del límite?
  4. ¿Debo usar Redis o RabbitMQ para tratar esta notificación en particular, parte de las cosas?
+2

Play se distribuye con varias aplicaciones de ejemplo. Encontré que el programa de ejemplo "WebSocket Chat" es _immensely_ útil para aprender sobre el manejo de Scala/Play/Akka/JavaScript/WebSockets. – Destin

+0

Si sus notificaciones no van a estar en "tiempo real" (= cada pocos segundos), puede considerar simplemente hacer una 'extracción' y actualizar el botón de acción del navegador con el nuevo estado cada X min/horas/días . –

+0

Las notificaciones de extracción van a ser en tiempo real. Por lo tanto, el problema. – Hick

Respuesta

2

1) Me gustaría utilizar http://socket.io/

3) Esto es interesante pregunta. El patrón de observador se usa comúnmente en el front end. Te recomendaría que revises este artículo http://addyosmani.com/largescalejavascript/. Me ayudó a estructurar mejor mi aplicación. Básicamente es un patrón Pub/Sub con EventBroker/Mediator entre. Sería ideal desacoplar el editor y el suscriptor. Puede colocar EventBroker en el espacio de nombres de su aplicación. De esta forma, tiene acceso al bus de mensajes desde sus módulos, sin necesidad de pasar referencias a través de módulos todo el tiempo.

4) Hemos utilizado redis para notificaciones reales/horarias en sitios web que tienen funcionalidades similares como pinterest. Estoy impresionado con el rendimiento de Redis.

Cuestiones relacionadas