Amazon QLDB is a fully managed ledger database that provides a transparent, immutable, and cryptographically verifiable transaction log owned by a central trusted authority. Amazon QLDB tracks each and every application data change and maintains a complete and verifiable history of changes over time.
Immutable and Transparent
Amazon QLDB has a built-in immutable journal that stores an accurate and sequenced entry of every data change. The journal is append-only, meaning that data can only be added to a journal and it cannot be overwritten or deleted. This ensures that your stored change history cannot be deleted or modified. Even if you delete the data from your ledger, the change history of that data can still be accessed by reading from the immutable journal.
With Amazon QLDB, you can access the entire change history of your application’s data. You can query a summary of historical changes (e.g. list of all previous owners of a vehicle), and also specific details related to transaction history (e.g. the time of a vehicle sale and name of the new owner).
Amazon QLDB uses cryptography to create a concise summary of your change history. This secure summary, commonly known as a digest, is generated using a cryptographic hash function (SHA-256). The digest acts as a proof of your data’s change history, allowing you to look back and verify the integrity of your data changes. You can use this digest with QLDB’s API to prove the integrity of any transaction (e.g. whether a transaction occurred or not). While QLDB also allows you to query and access your data’s history, verifiability is useful for business scenarios where you need a proof related to a specific transaction. For example, an e-commerce business may need to show proof of a winning bid.
Amazon QLDB delivers seamless, automatic scaling to meet the demands of your application without the need to provision capacity or configure read and write limits. Also, since QLDB is a database, it provides better performance and scale than blockchain frameworks. QLDB can easily scale up and execute 2-3x as many transactions as common blockchain frameworks. Blockchain frameworks are de-centralized and require peer nodes to validate a transaction before it can be stored in the ledger, impacting their performance. On the other hand, executing a transaction in QLDB is as simple as any AWS database.
Getting started with Amazon QLDB is easy as there are no servers to manage or capacity to provision. You can create a new ledger in minutes using the AWS Management Console, AWS Command Line Interface (CLI), an AWS CloudFormation template, or by making calls to the QLDB API.
Amazon QLDB provides Amazon CloudWatch metrics for your ledgers. With QLDB, you can view key operational metrics for your read and write IOs.
Easy to Use
Amazon QLDB supports PartiQL, which is a new open standard query language. PartiQL supports SQL-compatible access to QLDB's document-oriented data model that includes semi-structured and nested data while remaining independent of any particular data source. With PartiQL you can easily query, manage, and update your data using familiar SQL operators.
Data models define how data is processed and stored inside a database. Amazon QLDB stores data using a document-oriented data model, which provides you the flexibility to store structured and semi-structured data. QLDB’s data model also supports nested data structures, which can simplify your applications.
When performing a database operation, Amazon QLDB provides atomicity, consistency, isolation, and durability (ACID) properties. Also, QLDB transactions have full serializability- the highest level of isolation. The ACID properties of transactions make it easy to write correct applications. For example, in a banking application, when $100 is being transferred from Account A to Account B, either the operation will execute fully and consistently, where the money is debited from Account A and credited to Account B, or it will not execute at all. The transaction will never execute in a partial and inconsistent manner, where the money is credited to Account B but not debited from Account A or vice-versa.