One of the things that stuck me while watching the Chatter presentation and demo was the asynchronous and event driven nature of the collaboration taking place. As an example, any number of activities happening at your customer account – identification of a new opportunity, a project being completed, etc. can be treated as event that can be handled by the right people or system which in turn could trigger additional events and so on.
Let us look at a few of the attributes of this style of interaction.
- The entity(either a person or a system) triggering the event just broadcasts/publishes the event without any knowledge of who may be interested in that – similar to status updates on Facebook.
- The events do not occur in a linear, predictable manner – they correspond more closely to way things work in the real world – asynchronous, less predictable and potentially in parallel.
- The entity monitoring the events decides on the level of importance associated with an event. Using the above example, both the sales team and the professional services team may be monitoring the same customer account. Completion of a project is probably more interesting to the professional services team vs. to the sales team.
- The entity monitoring the event decides the handling of the event – in the above example, completion of a project would trigger reassignment of the consultants, billing the customer etc. These activities could in turn trigger additional events.
- The relationship between the entities generating the event and those handling the event may not be known ahead of time – this is especially true when human actors are involved.
The last point is especially interesting since it enables an organization to be able to leverage knowledge and relationships that can not be easily hard wired into an application. For example, identification of a new opportunity may enable an employee who may have some domain knowledge required to contribute even though she may not be part of the sales team.
Event Driven Architecture (EDA) is an architectural pattern that is based around the concept of events and event handling. Though EDA has been around for a while it has been primarily used in the middleware domain to make systems integration more responsive and flexible. What limited EDAs from easily incorporating human actors into the picture were the rigid tools where all human actors and their roles had to be rigidly defined and hard wired into the system. What makes Chatter really exciting is that Chatter makes it easy to build or make your existing applications event driven and bring in the richness of social media style of collaboration to these applications. And because Chatter is both a platform and an application, you can easily expose the collaboration aspects through the application to a wider audience who can than participate and add value to the conversation.