Lightweight, publish / subscribe messaging framework for client-side JavaScript