EventStore中的EventsByTag支持

时间:2017-11-14 14:12:56

标签: akka-persistence get-event-store

使用EventStore作为ReadJournalakka-persistence API来构建持久视图。

我面临的问题是,在事件持续存在后,我在EventStore GUI中看不到标签。因此,我不确定正确的标记事件是否在事件库中持久存在。

通过http://pkaczor.blogspot.in/2015/12/akka-ddd-integrating-eventstore.html和一个小测试,我发现我无法通过currentEventsByTag akka持久性API读取事件存储中标记所持有的事件。

我的写事件适配器如下所述。

public class ViewEventAdapter implements WriteEventAdapter {
  @Override
  public String manifest(Object event) {
    return "";
  }

  @Override
  public Object toJournal(Object event) {
    if (event instanceof DomainEvent) {
      DomainEvent domainEvent = (DomainEvent) event;
      return tagged(domainEvent , "ViewRelated");
    }
    return event;
  }

  private Tagged tagged(Object event, String tag) {
    Set<String> tags = new HashSet<String>();
    tags.add(tag);
    return new Tagged(event, tags);
  }
}

以下是配置。

akka.persistence {
    journal {
        plugin = "eventstore.persistence.journal"
        event-adapters {
            tagger = "com.wt.domain.write.events.ViewEventAdapter"
        }

        event-adapter-bindings {
            "com.wt.domain.write.events.DomainEvent" = tagger
        }
    }
}

最后是我坚持使用eventByTag的相关代码。

private void handle(DomainEvent event) {
       ViewEventAdapter viewAdapter = new ViewEventAdapter();
        persist(viewAdapter.toJournal(event), evt -> {
          domainObject.update(evt);
          sender().tell("Done"), self());
        });
      } 
  }

非常感谢任何有关此事的帮助。

此处有类似的问题还有另一个问题:Why doesn't the Akka Persisence Query Read Journal retrieve my events?

0 个答案:

没有答案