If you are crossing process boundaries then some degree of "weight" is going to be incurred. Why do you say that JMS is heavyweight? The API is quite simple? There are supposedly light-weight implementations, for example link text heavier costs such a persistence and transactionality are optional.
What do you need that is lighter than this?