 <p>Yes this can be easily done using Clojure (for backend) and ClojureScript OR JavaScript (for frontend).</p> <p>Basically the client js code will use websockets to connect to clojure server and on server you can have a state wrapped in an atom that is access by each client and each client is updated about the state through the connected websocket... something similar you do in a chat web application. </p> <p>For websocket you can use <a href="https://github.com/ztellman/aleph" rel="nofollow">Aleph</a>.</p>