Understanding the event-driven architecture