我正在使用Lagom框架创建一个服务,需要在应用程序的架构方面得到一些帮助。有一个Employee服务,它包含了所有雇员的信息。每个雇员都有一个地址。模型如下所示:
class Employee {
String firstName;
String lastName;
String email;
Address address;
}
class Address {
String apt;
String street;
String city;
String state;
String pin;
}
现在,我正在为employee创建一个服务,并考虑将Cassandra用于数据库。我应该为employee创建一个包含地址的自定义用户类型(UDT)的表,还是为address创建一个单独的服务,并在employee服务中使用该服务。另外,有人可以给我介绍一个Lagom框架示例,该示例演示了UDT在Cassandra中的使用。
1条答案
按热度按时间k5ifujac1#
在Lagom中持久化数据的推荐方法是使用事件来源,如下所述:
https://www.lagomframework.com/documentation/1.3.x/java/PersistentEntity.html
因此,您不直接将状态存储在表中,而是存储导致该状态的事件。例如,您可能有EmployeeAdded事件和EmployeeAddressChanged事件,等等,这取决于在业务用例中建模的意义。这些都是持久化的内容,然后当加载雇员时,Lagom将重放所有持久化事件,以创建上面的Employee类型。