09/20/07 :: [FOA] Feed oriented Architecture [permalink]
I work downtown Seattle, and I kind of have a view on the Puget Sound (this is not uncommon). I saw a cargo ship today, probably coming from China. I was wondering what was involved to make this ship appear at this time and this location in its current state. First, lots of work. Ok. Lots of state capture, alignment and communication too. But the essence of information systems is to "synchronize" state (I am talking about the state of the physical world): you tell me what you can do, and I tell you what I want you to do.
The only kind of productivity gains brought by information systems are associated to resource optimization via state capture, alignment and communication. They capture the state of the physical world and keep communicating it (inside and outside) to whoever needs it for the purpose of reaching alignment. If they are smart enough, they are also good at predicting future state.
If I could summarized what I have been doing in the last 10 years in one sentence, it would be "look for a better programming model to build information systems". In one split second I started to see feeds everywhere. Feeds are great at capturing, aligning and communicating state. A ship, a container, a purchase order, a shopping cart, a bank account (a double feed), a class, a school, I franticly searched on my favorite engine if someone had came up with something like Feed Oriented Architecture. Nothing.
There are few objects that actually don't exhibit feed like behavior. They are mostly master data. A catalog is not exactly a feed, but a catalog update it. A customer is not a feed either, but some aspects are, such as support incidents, purchases, returns...
Some feeds time out or may be closed (for updates), other behave like a stack, may be sorted, may be updated... All the sudden data did not appear as much relational as it used to be. Don't get me wrong, relational data is not going away anytime soon, but it looks like the programming model of information systems could be greatly simplified if this construct was available to developers.