Add @Transactional on the runtime code in the lambda expression, not on the functional bean. If it is set on the function bean, then that will only be invoked at application initialization, thus losing the transactional semantics on the actual runtme code. Resolves https://github.com/spring-cloud/spring-cloud-stream-samples/issues/212