It looks like the general recommendation about SSE is to send messages at fixed interval to clients to probe the connection health (see https://github.com/spring-projects/spring-framework/issues/18523#issuecomment-470141717).

Should it be the application responsibility (or not, see #33355), in order to track the ResponseBodyEmitter state from multiple application places (the first place being the @Controller where the object is created, the second place being the heartbeat executor), I think ResponseBodyEmitter should allow multiple onTimeout, onError and onCompletion callbacks.

Currently, ResponseBodyEmitter only allows at most one callback per lifecycle event type.

Comment From: reda-alaoui

Thank you ❤️