我的 Lagom 服务的架构?

Architecture of my Lagom Service?

我正在使用 Lagom 框架创建服务,在应用程序架构方面需要一些帮助。 Employee 服务包含所有员工的信息。每个员工都有一个地址。模型是这样的,

class Employee {
      String firstName;
      String lastName;
      String email;
      Address address;
}

class Address {
    String apt;
    String street;
    String city;
    String state;
    String pin;
}

现在我正在为员工创建单一服务,并考虑将 Cassandra 用于数据库。我应该为包含自定义用户类型 (UDT) 地址的员工创建单个 table 还是为地址创建单独的服务并在员工服务中使用此服务。 也有人可以向我指出一个 Lagom 框架示例,该示例演示了在 Cassandra 中使用 UDT。

在 Lagom 中持久化数据的推荐方法是使用事件源,如下所述:

https://www.lagomframework.com/documentation/1.3.x/java/PersistentEntity.html

因此,您不会将状态直接存储在表中,而是存储导致该状态的事件。例如,您可能有一个 EmployeeAdded 事件和一个 EmployeeAddressChanged 事件,等等,具体取决于在您的业务用例中建模的意义。这些是持久化的东西,然后当员工被加载时,Lagom 将重播所有持久化的事件以创建您上面的 Employee 类型。