An event-driven architecture is a software architecture using events as the core means for interaction between its software components, including capture, communication, processing, and persistence of events.