我应该如何为Lagom服务建模Cassandra数据?

voase2hg  于 2022-11-05  发布在  Cassandra
关注(0)|答案(1)|浏览(134)

我正在使用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中的使用。

k5ifujac

k5ifujac1#

在Lagom中持久化数据的推荐方法是使用事件来源,如下所述:
https://www.lagomframework.com/documentation/1.3.x/java/PersistentEntity.html
因此,您不直接将状态存储在表中,而是存储导致该状态的事件。例如,您可能有EmployeeAdded事件和EmployeeAddressChanged事件,等等,这取决于在业务用例中建模的意义。这些都是持久化的内容,然后当加载雇员时,Lagom将重放所有持久化事件,以创建上面的Employee类型。

相关问题