Javers 生产最佳实践
Javers production best practices
是否有任何生产最佳实践(调整和类似)可以遵循以避免:
- 性能问题
- 不受控制的数据增长
是否还有任何清理实用程序或最佳实践来删除 "old" 或不必要的数据?
使用 MongoDB 能否解决最终的性能或数据维护问题?
有一个性能提示 -- 保持 Javers 数据小。您应该控制 Snapshots
持久保存到 JaversRepository 的数量。
应用程序应该只跟踪用户输入的重要数据的变化。您可以将其称为核心域数据或业务相关数据。应忽略所有技术数据、从其他系统导入的数据和生成的数据。 ignoring things in Javers.
有多种方式
归根结底,当您向用户展示 change log 时,它应该看起来像一个简明的、人类可读的故事,例如:
System.out.println(changes.prettyPrint());
Changes:
Commit 2.0 done by author at 15 Apr 2018, 22:50:15 :
* changes on Employee/Frodo :
- 'salary' changed from '10000' to '11000'
- 'subordinates' collection changes :
0. 'Employee/Sam' added
* new object: Employee/Sam
* changes on Employee/Sam :
- 'boss' changed from '' to 'Employee/Frodo'
- 'name' changed from '' to 'Sam'
- 'salary' changed from '0' to '2000'
Commit 1.0 done by author at 15 Apr 2018, 22:50:15 :
* new object: Employee/Frodo
* changes on Employee/Frodo :
- 'name' changed from '' to 'Frodo'
- 'salary' changed from '0' to '10000'
是否有任何生产最佳实践(调整和类似)可以遵循以避免:
- 性能问题
- 不受控制的数据增长
是否还有任何清理实用程序或最佳实践来删除 "old" 或不必要的数据? 使用 MongoDB 能否解决最终的性能或数据维护问题?
有一个性能提示 -- 保持 Javers 数据小。您应该控制 Snapshots
持久保存到 JaversRepository 的数量。
应用程序应该只跟踪用户输入的重要数据的变化。您可以将其称为核心域数据或业务相关数据。应忽略所有技术数据、从其他系统导入的数据和生成的数据。 ignoring things in Javers.
有多种方式归根结底,当您向用户展示 change log 时,它应该看起来像一个简明的、人类可读的故事,例如:
System.out.println(changes.prettyPrint());
Changes:
Commit 2.0 done by author at 15 Apr 2018, 22:50:15 :
* changes on Employee/Frodo :
- 'salary' changed from '10000' to '11000'
- 'subordinates' collection changes :
0. 'Employee/Sam' added
* new object: Employee/Sam
* changes on Employee/Sam :
- 'boss' changed from '' to 'Employee/Frodo'
- 'name' changed from '' to 'Sam'
- 'salary' changed from '0' to '2000'
Commit 1.0 done by author at 15 Apr 2018, 22:50:15 :
* new object: Employee/Frodo
* changes on Employee/Frodo :
- 'name' changed from '' to 'Frodo'
- 'salary' changed from '0' to '10000'