29 June 2004

You can think of many back-end applications as primarily operating by being told about important events in outside world. Indeed the idea of an event driven enterprise application is an old way of looking at things - I first came across this in McMenamin and Palmer in the mid 80's.

If you have this kind of system, you can write a StranglerFigApplication by tapping into this stream of events. Ideally you'll have a messaging based system to connect in the events, but that would be too easy. There may be a certain set of database tables that get updated. Ideally you'll get a row per event, otherwise you may need to monitor updates to a table and synthesize your own event stream. If the database is encapsulated with a Service Layer of some kind you can tap in there. If not this is a good use for database triggers. If the worst comes to the worst you can take copies of these tables and poll the actual tables to compare them against the copies to spot updates.

Once you've tapped into the event stream, you can then build application functionality in the strangler. You can start with new functionality that's easy to write and then gradually move old functionality over once you're getting into your stride. Providing new functionality early makes it easy to get the all-important buy in from the customer. As you advance you can also begin AssetCapture.