Event-driven computation