hi all, My project is completely dependent on asynchronous messaging..so MDBs are natural choice. but project also involves webservices invocation , persistence (entity are strict no-no) and some other business logic. so i meant was client=>MDB=>session bean>>persistence,service invocations etc.. so in this case MDB merely picks up the message when it arrives and then call a local session bean with the data from the message.the session bean carries out the business logic. the alternative is to have the business logic in the onMessage method of MDB. I am thinking in terms of performance,transations and scalability i hope i have cleared out my requirements. experts what's your call..