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

问题描述 投票:0回答:1

因此,假设我们有一个Web前端和API Gateway / Lambda / DynamoDB后端。

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

因为默认情况下DynamoDB中的读取是最终的,所以用户可能会单击“保存”,然后看不到下一页列出的新项目 - 这可能会引起混淆,如果他们输入大量信息有点恐慌。

让后端接受额外的参数来对“getProjects”调用说“强烈一致的读取”是一种好的模式吗?或者还有另一种方法可以解决这个问题吗?

amazon-web-services amazon-dynamodb serverless
1个回答
1
投票

插入或更新项目后,执行一致读取实际上是一种很好的模式。在描述CRUD operations时,可以在DynamoDB文档中看到这方面的一个示例

我在过去使用Web应用程序时所做的一个常见模式是通过重定向到GET结束任何POST / PUT请求,我在其中启用强一致性。这样可以在插入后立即为列表提供强大的一致性。在大多数情况下,用户在插入后不会执行任何操作,将导航到应用程序的其他部分,或者单击以查看项目的详细信息。

假设用户点击列表中的项目以查看详细信息。理论上它可能还没有被传播(尽管可能会有,因为DynamoDB复制往往非常快)。我过去使用的另一个模式是详细信息页面我发出最终请求,但是如果我没有得到结果,而不是直接找不到最终用户,我会一次性地重新读取。如果它没有返回任何结果,那么我返回not found,但如果它只是一个传播问题,那么你很高兴。

© www.soinside.com 2019 - 2024. All rights reserved.