
In that case, they control the size of the table and control the cost. A GSI is like a normal DynamoDB table, which also has keys and attributes.īy using DynamoDB, engineers also used the time to live ( TTL) attributes to manage retention. We can easily support key-value queries by the partition key.Batch queries like ‘Get ongoing orders by passenger id’ are supported by DynamoDB Global Secondary Index (GSI). In our case, the table contains multiple order items. The partition key is used for key-value queries, and the sort key is used for range queries. Each item has a partition key and sort key. A sample DynamoDB table is illustrated in the following figure.Įach DynamoDB table has many items with attributes. It supports strong consistency for primary-key. DynamoDB is a scalable, elastic key-value store. These two types of data storage and their usage is illustrated in the following figure.ĭatabase platform for online ordering in Grabįor transactional queries, engineers were using AWS DynamoDB. Analytical queries are also known as OLAP or online transaction processing. Transactional queries are also known as OLTP or online transactional processing. We can easily classify these two types of Read/Write queries as transactional and analytical queries. Read queries like getting orderID, read statistics related to the userId, etc.

Write queries like create and update an order. To design this system, as stated in the blog post they calcified queries into two main classes. To be scalable and manageable, the data platform and ingestion should be designed as a distributed, fault-tolerant.

GrabApp is an application that customers select and buy their daily needs from merchants. Grab engineering has recently shared its experience in the design of its backend data platform in a blog post.
