Webシステムにおいて、同じ画面を複数ユーザーが表示・操作している状態で画面を同期化したいと考えています。

○期待している動作
ユーザが画面を操作>AjaxでDBを更新>更新内容を、同じ画面を開いている別ユーザの画面にも反映

○現状
play.libs.EventSourceのリファレンスに乗っているサンプルコードを実装し、一定時間ごとにサーバからクライアントへデータを送信できることを確認しました。

・javascript

$(function() {
/**************************************************************************
 *
 * 同期処理用SSE
 *
 **************************************************************************/
var eventSource = new EventSource("/xxx/sse/test");
eventSource.onmessage = function (event) {
      alert(event.data);
    };
});  

・サーバ側

public Result testSSE() {
    Source<String, ?> tickSource = Source.tick(Duration.Zero(), Duration.create(10000, TimeUnit.MILLISECONDS), "TICK");
    Source<EventSource.Event, ?> eventSource = tickSource.map((tick) -> EventSource.Event.event(df.format(ZonedDateTime.now())));
    return ok().chunked(eventSource.via(EventSource.flow())).as(Http.MimeTypes.EVENT_STREAM);
}

○疑問
このサンプルを参考に、「一定時間ごと」ではなく「DB更新処理が完了する毎」にフラグを変更したいのですが、方法がわからずに頓挫している状態です。
ご存知の方がいらっしゃいましたらご協力をお願いします・・・。

○仮説
AkkaStreamで時間ごとに繰り返してるようなのでその処理を削り、DB保存処理の完了後にeventSourceを作成してやればいくのでは?と考えました。
しかし結果として、DB保存処理を走らせていないにも関わらず、3秒程度の間隔でクライアント側にメッセージが表示されました。
Source.singleの意味合いを勘違いしていると思うのですが、現状はここで行き詰っています。

・javascript

$(function() {
/**************************************************************************
 *
 * 同期処理用SSE
 *
 **************************************************************************/
var eventSource = new EventSource("/xxx/sse/test2");
eventSource.onmessage = function (event) {
      alert(event.data);
    };
});

・サーバ側

public Source<EventSource.Event, ?> eventSource = Source.single(EventSource.Event.event("test Datas"));    
public Result saveDB() {
    ...
    eventSource = Source.single(EventSource.Event.event("test Datas"));
}
public Result testSSE2() {
    return ok().chunked(eventSource.via(EventSource.flow())).as(Http.MimeTypes.EVENT_STREAM);
}