When using any message queuing system, you will discover that very large messages are not a good idea. With MSMQ, there is a hard limit of 4 MB per message.
This may seem like a lot, but consider the situation we mentioned in Chapter 1, Getting on the IBus, where we're processing images for our clients. You might be able to squeeze most images into an MSMQ message, but you shouldn't bank on it. These days, 12-megapixel cameras that create 2.5 MB JPEG images are fairly commonplace, and once the message serializer Base64 encodes the byte array into the message, you're looking at 3.3 MB. That's way too close for comfort considering the average number of megapixels has nowhere to go but up. Now consider the 256 KB limit on Windows Service Bus Queues, or the 64 KB limit on Windows Azure Queues!
Other queuing systems don't have a hard limit, but that doesn't mean creating huge messages is a good idea! Because of the implications of shuffling all these messages around...