Do you remember these classical computer science problems? Problems like:
- Producers-consumers problem
- Dining philosophers problem
- Sleeping barber problem
- Readers-writers problem
- Cigarette smokers problem
So why am I recovering these old Dijkstra and friends computer science problems? Well, some months ago I've designed an application prototype to publish sensors data to be consumed from subscribers (sorry, I'm afraid I can't get into too much details for now). The pub/subs pattern was easily implemented over WCF, but out-of-the-box it didn't release control to the registered sensors as soon as it could - and should.
I was divided: should I release control through independent producer/consumer or just use MSMQ? When browsing for a Producers-consumers problem pseudo code implementation, it became clear why don't we recall this problems as often as we did in the past: platforms like MSMQ isolate us from such implementations (on this case, the Producers-consumers problem). So (as usually) I've managed to keep my usual rate: pushing message queue into every project I can :)