import org.camunda.bpm.engine.delegate.DelegateTask; import org.camunda.bpm.engine.delegate.TaskListener; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class KafkaUserTaskListener implements TaskListener { private static final Logger LOGGER = LoggerFactory.getLogger(KafkaUserTaskListener.class); private final UserTaskStrategy userTaskStrategy; public KafkaUserTaskListener(UserTaskStrategy userTaskStrategy) { this.userTaskStrategy = userTaskStrategy; } @Override public void notify(DelegateTask delegateTask) { try { LOGGER.info("Handling task {}", delegateTask.getId()); userTaskStrategy.handle(delegateTask); -- here is our bussines implementation where we pass information to external java application } catch (Throwable ex){ LOGGER.error("Exception on KafkaUserTaskListener", ex); } } }