在DynamoDB中保存新行,然后以最终的读取一致性列出所有这些项目



所以想象我们有一个Web Frontend&API网关/lambda/dynamodB后端。

用户导航到"添加项目"页面,在其中键入新项目的名称并单击"保存",然后将其导航到项目列表(其中应包括他们刚刚添加的项目)。

因为默认情况下dynydoDB中的读取是最终的恐慌。

让后端接受一个额外的参数可以在" getProjects"调用上说"非常一致的读取"是一个好模式吗?还是还有另一种处理此问题的方法?

实际上是一个很好的模式,在插入或更新项目后,进行一致的读取。描述Crud操作时,可以在DynamoDB文档上看到一个例子

我过去在使用Web应用程序时所做的一种常见模式是结束任何帖子/放置请求,并重定向到我实现强大一致性的GET。插入后,这立即使列表具有很强的一致性。在大多数情况下,用户在插入后只能执行任何操作,将导航到应用程序的不同部分,或者单击以查看项目的详细信息。

让我们假设用户单击列表中的项目以查看详细信息。从理论上讲,它可能还没有传播(尽管有机会,因为DynamoDB复制往往非常快)。我过去使用过的另一种模式是为了详细信息,我发出了最终请求,但是如果我没有得到结果,而不是直接返回到最终用户,我将以一致性的读取后重试。如果它没有返回结果,那么我返回找不到,但是如果只是一个传播问题,那么您就很好。

最新更新