You can have a look at TestSwarm:
The project that I’m working on: TestSwarm.
Its construction is very simple. It’s a JavaScript client that continually reaches to(pings) a central server looking for more tests to run. The server collects test suites and sends them back to the respective clients.
All the test suites are collected. For example, 1 “commit” can have 10 test suites associated with it (and be distributed to a selection of browsers)...
The nice thing about this construction is that it’s able to work in a fault-tolerant manner. Clients can come-and-go. At any given time there might be no Firefox 2s connected, at another time there could be thirty. The jobs are queued and divvied out as the load requires it. Additionally, the client is simple enough to be able to run on mobile devices (while being completely test framework agnostic)
Hope this helps!