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.
Amazon QLDB’s streaming capability provides a near real-time flow of any changes to your data stored in QLDB via Amazon Kinesis Data Streams. QLDB’s stream data always retains the core QLDB characteristics of “complete & verifiable” data storage. This allows you to react quickly to new events (e.g., a change in account balance for a banking ledger application) and easily integrate with downstream services (e.g., AWS Lambda, Amazon Redshift, Amazon Elasticsearch).
Amazon QLDB’s streaming capability enables a number of different use cases such as:
Event Driven Architecture – You can build applications with an event-driven architecture using AWS Lambda. For example, a bank can implement a notification system that sends a text message or an email to a customer when the account balance drops below a certain threshold.
Analytics – You can run analytics jobs on real-time or historical data. For example, an e-commerce website can run ad-hoc analytics to generate hourly aggregated metrics, such as number of t-shirts sold per day of a particular color, from historic data. Amazon QLDB is able to provide this unique ability to replay historic event data, leveraging the Journal-first architecture of QLDB. You can choose to start a QLDB Stream from any point in time in the past and subsequent changes will be streamed to Amazon Kinesis.
Replication to Purpose-Built Data Stores – You can connect Amazon QLDB to other purpose-built data stores. For example, a bank can provide powerful text search capabilities to find debit and credit transactions in an account, using Amazon Elasticsearch. You can also replicate to other purpose-built data stores that provide a different materialized view, such as graph-based view using Amazon Neptune, enabling them to use the best tool for the job.