Event Driven Architecture


Event Driven Architecture

Settings > System Settings > Application Settings > Event Driven Architecture

Enabling event driven architecture can increase performance by reducing the number of queries Kion makes and reducing the time to resolution when changes are made. We recommend enabling event driven architecture to improve Kion's efficiency as you scale your organization. Event driven architecture's positive impact on performance increases as the number of accounts within your environment increases.

We plan to add event driven architecture as an option for more cloud providers and features in future releases.

The services used by event driven architecture can incur additional costs.

What is Event Driven Architecture?

Event driven architecture is an alternative to polling architecture that is much better suited for environments at scale. A polling architecture checks with service providers to see if anything has changed on any of their resources. These syncs are often on a time schedule and scan every resource in your environment every time.

With event driven architecture, service providers report events to us as they happen. Reported events indicate specific accounts that have had changes, so we can update only those specific resources instead of each and every resource. This also means that instead of checking for changes every five minutes, changes are reported right away.

How Do You Transition?

  1. To use event driven architecture, you must be using AWS organizations. For information about enabling organizations, see Amazon's article Creating an Organization.
  2. Enable event driven architecture options in Kion by navigating to Settings > System Settings > Application Settings > Event Driven Architecture.

When you enable this setting and click Update, we deploy an event management AWS CloudFormation template into the account Kion is installed in, and event member AWS CloudFormation templates into the accounts Kion manages. These AWS CloudFormation templates create an SQS queue that we can read events from. Once the queue is in place, if an event comes in that we are configured to look for, we run a sync on the account.