Can anyone suggest an ideal architectural practice, way to setup a process that could be run offline? For instance sending an email, or doing an insert into a log entry into a database? In other words, something that doesn't need to happen immediately but can be forwarded somewhere else. In java you would typically use JMS, a java message driven bean which would go into a queue somewhere else and was guaranteed to do the work at some point in the future. Please suggest an approach which would not stop JIRA in its tracks to process immediately but could be handled elsewhere?