我遇到了一个问题陈述,它需要应用程序的离线同步功能。在这种情况下,用户将填写提供的表格中的数据,并且可能并且可能没有网络可用。每当他进入网络时,客户端都应该同步数据。可以有两种类型的服务器,一种是卫星服务器,它可以是填充在表中的数据的临时存储或暂存,这可能是在因特网或内部网中,因此第一步客户端将数据推送到此服务器然后会有Azure或AWS中的云服务器,这将是真相的最终来源,数据最终将在这里同步。
应用程序将在MEAN Stack中,并且由于NoSql不遵循ACID属性,我如何确保NoSql世界中的数据完整性。换句话说,我如何确保每次同步发生时都会发生在某个检查点,如果没有,那么它会回滚吗?由于它是一个企业应用程序,因此数据量将会很大。
此外,沙发数据库或小包db或任何其他数据库都不是一个选项。它要么是mongo,要么是Azure的DocumentDB。
答案 0 :(得分:1)
是否有可能以所有相关部分都在一个文档中的方式设计架构,如“MongoDB is ACID-compilant at the document level”。你可以use write concern to specify the degree of consistency(参见'MongoDB是否支持ACID交易?')。