Sunday, August 19, 2007

Pub/Sub vs. Atom & AtomPub?

I came across an interesting article by Sean McGrath entitled I'll push and you pull. The mashup approach to application integration.

I posted about Push vs. Pull in the spring. I'm a sucker for Lean thinking so the title of this article got my attention.

Sean says:

Now here is the kicker. The web - with all its concomitant bits'n'bobs from XML to RSS/Atom to AJAX - is an extremely good platform for pull-centric design. On the Web, if you try to pull some piece of information and something goes wrong, well you just pull again and again until you get it or give up. Nothing fancy. Just brutish repetition. Something machines are extremely good at. If you want to look at information from yesterday, you just go to the URL that contains yesterday's information. Nothing fancy. Just a simple naming convention that includes dates in URLs.

I have done a fair amount with pub/sub over the years (complete with clustering etc., fail over strategies, etc.). I like it, but it is not without it's challenges. If only there was real guaranteed delivery etc. If only there wasn't "flow control". If only fail over always worked. If only messages didn't get trapped, etc. All I'm saying is having implemented several large implementations of pub/sub (EDA whatever you like), I know that it isn't easy - that nothing is really "guaranteed".

Clearly Atom can't replace ALL pub/sub use cases, but for every day integration architecture where you want business events / EDA why can't we use Atom feeds? In an extreme case, you might have an event sink requesting the feed every 10 seconds - in most cases every 10 minutes would likely be fine?

Who is doing this today? Any lessons from the trenches?

Update I meant to read the article earlier linked off of this post by James Snell. Just did. Dang. It is a sample of using Apache Abdera.

Update 20-AUG Bill de hÓra has a pretty $$ response - thanks Bill.

Update 21-AUG Dan Creswell has some thoughtful comments. When I blog I often do the x vs. y thing - but clearly the truth is in the middle. I used to be a push bigot and have just learn the hard way how difficult it is to achieve. Clearly, not everything can be pull - of course it is a mix. In case anyone is curios, I'm thinking of inter-domain integration (e.g., getting customer additions/updates/deletions to many interested systems) with this line of thinking rather than some sort of intra-domain integration (e.g., trading system where there is massive high performance pub/sub). You have to choose the right tool for the job. More and more for me, simplicity is winning out. This is just an evolution of my thinking - a year ago I was still a MOM bigot.

2 comments:

Anonymous said...

payday loans
payday loans
payday loans
payday loans
payday loans
payday loans
payday loans
payday loans
payday loans
payday loans
payday loans
payday loans
payday loans
payday loans
payday loans
payday loans
payday loans
payday loans
payday loans
payday loans
payday loans
payday loans
payday loans
payday loans
payday loans
payday loans
payday loans
buy accupril
buy aciphex
buy actonel
buy actos
buy advair
buy aldactone
buy allegra
buy altace
buy amaryl
buy amoxil
buy antabuse
buy arava
buy aricept
buy atarax
buy atrovent
buy avandia
buy avapro
buy bactroban
buy benicar
buy biaxin
buy buspar
buy cardura
buy carisoprodol
buy ceftin
buy celexa
buy celebrex

Anonymous said...

buy cephalexin
buy cialis
buy cipro
buy clarinex
buy claritin
buy clomid
buy clonidine
buy colchicine
buy combivent
buy compazine
buy coreg
buy coumadin
buy cozaar
buy depakote
buy detrol
buy ditropan
buy doxazosin
buy effexor
buy elavil
buy evista
buy famvir
buy flomax
buy flonase
buy flovent
buy fosamax
buy glucophage
buy hyzaar
buy imitrex
buy keppra
buy lamisil
buy lanoxin
buy lasix
buy levaquin
buy levitra
buy lexapro
buy lipitor
buy lisinopril
buy lotensin
buy lotrisone
buy meclizine
buy medrol
buy metformin
buy mircette
buy motrin
buy naprosyn
buy neurontin
buy nexium
buy nizoral
buy norvasc
buy paxil
buy plavix
buy plendil
buy pravachol
buy prednisone
buy premarin
buy prevacid
buy prilosec
buy propecia
buy proscar
buy protonix
buy prozac
buy relafen
buy remeron
buy risperdal
buy serevent
buy seroquel
buy singulair
buy skelaxin
buy buysoma
buy synthroid
buy tetracycline
buy toprol
buy tramadol
buy trazodone
buy tricor
buy ultracet
buy ultram
buy viagra