I'm struggling with the Journey Builder documentation on firing events. I believe it's wrong, or perhaps it's right and I'm wrong.
As I understand it, an Interaction begins by firing an Event. When the Event is fired it will be heard by a Trigger, which prompts the Interaction to begin. Events are typically fired when an update is made to the data extension that is linked to the Event (the Event Source).
Now, let's turn to the documentation which states:
Events are fired using Contact Builder or Automation Studio.
Contact Builder
Incorrect statement. Event's aren't fired using Contact Builder. Events can be fired by using the contactEvents REST API method which is used in conjunction with an Event in Contact Builder. This method enables you to post data from an event and associate that data with a contact.
An Event needs to exist in Marketing Cloud before data can be posted to it. Events are created in Contact Builder and use a sendable data extension as the entity to store the event data. So, it's not actually a correct statement that "Events are fired using Contact Builder" — they're not. Technically speaking, they are fired by the contactEvents method.
Automation Studio
It's true that an interaction can be started by Automation Studio but, but not by firing an Event. At least, not an 'Event' as we know it.
Events are created in Contact Builder and use a sendable data extension as the entity to store the event data.
While Automation Studio has a 'Fire Event Activity' it's not actually firing an actual Event (that is, an Event in Contact Builder).
(source: exacttarget.com)
This 'Fire Event Activity' has actually nothing to do with an Event in Contact Builder. You link it to a Data Extension, but I belive this can be any Data Extension; it doesn't need to be the linked data extension where the serialized event data is created (which is used in an Event).
Which Option To Use
I guess, in practice, you would use the contactEvents API method to start an Interaction when you are adding data that's related to a Contact (for example, when a customer purchases a product on an eCommerce website).
You would typically use Automation Studio when a record is added to a Data Extension that's not necessarily directly related to a Contact (for example, adding a new product to a catalog which would trigger a 'new product' email to be sent to Contacts in an Interaction).
So am I right? Is this clear? Or just clear as mud?