Friday, June 13, 2008

Messing With Everybody's Email - A Broadcast Storm

I've seen this happen in real life, and it isn't pretty.

Let's say that you have 100 friends, very few who know each other except through you. One day, you decide to send each of them the same bit of email. That's OK, except you forget to use BCC, and that's not OK.

So now, you have 100 copies of your email, each copy with the email address of 100 mutual strangers, sitting in the Inbox of 100 mutual strangers. That's a potential broadcast storm.

All that it takes is 1 of the 100 doing a "Reply To All", and you have a beginning storm.
I don't want this. Please don't send any more to me.
Out of the 99 recipents of that "Reply To All", 1 person then decides that he doesn't want any email from 99 strangers any more than the first guy did, so he too does a "Reply To All", and now you have an active storm.
Well, I don't want it either. Don't bother me!!
Now you have 300 copies of your email (100 recipients, with 3 copies each - 1 original and 2 replies) in the email system.

As you add more active participants, the chances are increasingly greater that the increased amount of unwanted email will cause yet more people to become active. If even a third person becomes actively involved, the storm will likely go out of control.
So why the ^%$@@ are you sending this *@%% to me? Knock it off!!
then
&*^% off, wanker! I don't want your &*%$ %#@!
and you have an uncontrollable mess - 500 copies of unwanted email (100 recipients, with 5 copies each - 1 original and 4 replies).

In a corporate environment, with all 100 recipients using the same corporate email system, the email server can be quickly overloaded. The only way to stop a storm is to bring the server down, and delete the email - all copies. Finding all copies won't be simple - with just 3 people doing "Reply To All", you have 300 copies. If just 1 person changes the email subject, on just 1 copy, before replying, the task of finding and deleting all copies becomes progressively more complex.

In a corporate environment, with the email server techs being promptly involved, and with a single email server (or server cluster), this can be stopped. And with all participants being corporate employees, everybody can eventually be persuaded to not participate in the storm.

Outside, in the real world, this becomes a much scarier situation. You'll have multiple email systems involved, and the participants won't be as easily persuaded to not participate. If you have just 1 person in the 100 who is mischievous, and has 2 or 3 friends like him, he can even hijack the storm, and truly cause chaos.

An email broadcast storm, like a train wreck, is fascinating to watch. If you're a techie, and are intrigued by techie issues, it can be quite entertaining. But it can have casualties. Like a virus, once it starts spreading, it may be unstoppable.

Don't do it. Use BCC.