events alternative to pubsub