Talk:BMO/Pulse

From MozillaWiki
Jump to: navigation, search

redesign:

bugzilla extension:

  • map event to json
    • use existing code from push extension
    • ensure custom field implementation is complete
  • insert into table
  • provide a simple interface for the administrator to manage the table (delete stuck messages, etc)

daemon:

  • use POE::Component::Client::AMQP
  • poll table
  • send message to specified broker
  • only a single instance of the daemon should be actively running

error management:

  • if an error occurs within the bugzilla extension, the change should be aborted (the only class of problem that should generate an error within this class should be fatal errors such as database connectivity issues)
  • messages need to be sent in the order they were received, which means:
    • failures need to be identified as transient and permanent
    • transient failures (such as being unable to contact pulse's mq) will result in the message being retried until either:
      • the message is successfully transmitted
      • the message is manually removed by the administrator
    • should a message be 'stuck' for more than X hours, the daemon should shutdown and notify the administrators