praekelt/vumi-go — pull request #822 by jerith (2014-04-03 14:09:15+00:00)
Title: Service Component infrastructure

A Service Component is a collection of UI and backend code that provides some kind of service to other things within Vumi Go. It has a similar structure to a Conversation/Application, but has somewhat more freedom in both interface and implementation.

Some things that would work well as Service Components:
- airtime voucher management (using `airtime-service`)
- key-value store (potentially multiple variants, backed by different kinds of storage)
- scheduler (would need more hooks into other bits of Go)

Each component is backed by a Riak model in the same way a conversation is and probably has some kind of view definition along the same lines as a conversation. There probably needs to be some kind of loadable backend module (like a conversation definition, but with more stuff on it) to allow conversations, routers, jsbox apps, etc. to make use of the component's functionality.