我正在使用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 回答
在Lagom中保留数据的推荐方法是使用事件源,如下所述:
https://www.lagomframework.com/documentation/1.3.x/java/PersistentEntity.html
因此,您不直接将状态存储在表中,而是存储导致该状态的事件 . 例如,您可能有一个EmployeeAdded事件和一个EmployeeAddressChanged事件,依此类推,具体取决于您在业务用例中建模的意义 . 这些是持久化的东西,然后当员工加载时,Lagom将重放所有持久化事件以创建您上面的Employee类型 .