我的Lagom服务的架构?

我正在使用Lagom框架创建服务,并且需要在应用程序的体系结构中提供一些帮助 . 有员工服务,其中包含有关所有员工的信息 . 每个员工都有一个地址 . 这些模型是这样的,

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

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

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

回答(1)

2 years ago

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

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

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