There's been a lot of talk about event-driven architectures lately, and mostly in the context of SOA (Service Oriented Architecture). Event-driven is an almost ancient (by technology standards, anyway) concept that involves executing some sort of logic when some event happens. Anyone who's ever had the (mis)fortune to code for early versions of Windows will remember well the event-driven handlers you had to code that were required to build an application.

This paradigm followed us to the web, where functions are now coded in Javascript to handle just about any user - and system - event that might affect an application. Keystrokes, mouse movements, navigation - all are "events" that can be trigger some application logic.

It should be no surprise, then, that a network-oriented device like an application delivery controller that is also application fluent would implement an event-driven system through which myriad network and application layer logic can be implemented. That's right, we're talking about iRules.

Network devices have always appeared to have a measure of intelligence about them. Enterprise firewalls can act on a number of parameters derived from IP, TCP, and application layer data. What you aren't always able to do, however, is to act based on some event that occurs during the process. With enterprise firewalls, and even many application delivery controllers, you can't add logic to the processing of requests and responses that's based on an event germane to the protocol. For example, you can't necessarily write logic specifically to execute "when a client connects" or "when data begins to be received." It's often all or nothing and generally speaking it's based on connection and network layer protocols, and nothing more.

iRules provides a traditional event-driven progammatic mechanism for adding logic to your architecture. You can easily implement functions based on many events. A few options are:

DNS_REQUEST, AUTH_FAILURE, CLIENT_CLOSED, CLIENT_ACCEPTED, and HTTP_REQUEST_DATA

Given the flexibility of iRules, you can enrich messages, authorize users, enforce quality of service standards, and perform myriad network and application focused functions on requests and responses. It's an event-driven platform that offers extensibility, flexibility, and control over how users interact with applications, and how applications interact with their users.

iRules brings the ability to perform event-based processing to application delivery and offers a higher level of control over all interactions managed by the application delivery controller. You can implement additional security measures, add or remove headers and data from application messages, and generally control access to and behavior of applications based on application, user, network, or hundreds of other variables representing data up and down the entire network stack.

Check out some of the examples in DevCentral's CodeShare and see for yourself what kind of innovative solutions are possible when you have the power of event-driven intelligence in your architecture.

Imbibing: Coffee