AngularJS Event Driven Architecture