JMS is asynchronous in nature. Therefore not all the pieces need to be up all the time for the application to function as a whole. Even if the receiver is down the MOM will kept the messages on its behalf and will send them once it comes back up. Therefore at least a part of application can still function as there is no blocking.