In this chapter we discussed how message-driven beans provide an option to implement business logic that doesn't require synchronous communication. MDBs are stateless, can be pooled, and provide a fast, reliable guaranteed messaging solution. MDBs support both P2P and the pub/sub messaging model. Our example implemented both these messaging models. We also discussed the rules and requirements for writing ejbCreate(), onMessage(), and ejbRemove() methods and the MDB class.