All ETL tool comparison

Airbyte vs. Debezium

Here’s a comprehensive comparison of Airbyte vs Debezium to help you find an ideal replication solution for your data pipeline.

Airbyte
Airbyte
VS
Debezium
Debezium

Data replication is essential to ensure data consistency, faster data access, and disaster recovery in cases of system failure or data loss.

One efficient way to replicate data is the Change Data Capture (CDC) technique, which records only changes made to your datasets since the last capture. This reduces downtime and facilitates real-time updation of your destination databases.

Airbyte and Debezium are two key players in data replication and CDC.

This article provides a detailed Airbyte vs Debezium comparison to help you make an informed choice for your data replication needs, allowing you to compare Airbyte with Debezium effectively.

Introduction to Change Data Capture (CDC)

Change Data Capture (CDC) is a technique for tracking and capturing changes made to data in real time. It enables organizations to respond quickly to changing business conditions. CDC is a crucial component of modern data integration strategies, allowing businesses to synchronize data across multiple systems, ensure data consistency, and facilitate real-time analytics.

By implementing CDC, organizations can monitor database changes, such as inserts, updates, and deletes, and reflect them in their target data warehouse or other systems. This real-time data capture ensures that all systems remain up-to-date, providing a reliable foundation for data-driven decision-making and real-time analytics.

Airbyte Overview

Airbyte

Airbyte is an efficient data integration platform that allows you to consolidate and transfer data from different sources to a centralized destination. It offers a collection of 550+ connectors that enable the building of reliable ELT (Extract, Load, Transform) data pipelines, supporting a wide range of data sources and destinations.

Airbyte offers flexibility for your varied integration requirements. You can deploy this open-source integration tool on local systems or in the cloud. Airbyte's user-friendly interface makes it accessible for users with limited technical expertise, simplifying data integration.

An added advantage is Airbyte’s capability to manage AI data workflows. This lets you directly load unstructured data into specialized vector destinations like Pinecone.

Airbyte offers features like SSL (Secure Sockets Layer) encryption, single sign-on (SSO), and role-based access control to secure data transfers.

After loading the data into its destination, you can transform it by integrating Airbyte with dbt. This transformed data is useful for detailed analysis and business intelligence applications.

Debezium Overview

Debezium

Debezium is an open-source distributed platform for Change Data Capture (CDC). You can deploy it directly on your databases to capture and stream real-time changes from the source to the destination data systems.

Debezium is built on Apache Kafka and uses Kafka Connect for reliable CDC and data streaming purposes. Debezium excels in real-time data replication, ensuring immediate data consistency across systems.

The Kafka-based architecture enables real-time data synchronization, facilitating constant updation of all your datasets for smooth data pipeline operations. As a result, Debezium contributes to accurate data analysis and faster insight generation, which can drive enterprise growth.

Debezium’s efficient CDC capabilities reduce unnecessary data movement, consuming less resources and time. This contributes to improved operational efficiency and cost optimization.

Airbyte vs Debezium: CDC Showdown

Here is a detailed comparison of Airbyte vs Debezium for data replication through Change Data Capture (CDC):

Both tools are designed to facilitate data integration, ensuring seamless data flow and synchronization across various platforms.

Architecture (Airbyte's ELT approach vs Debezium's CDC)

Airbyte:

Airbyte is an ELT solution with a simple UI, API for configuration, job scheduling, logging, and alerting features. It also includes connectors that facilitate data transfer from many sources and destinations. While Airbyte offers a wide range of connectors, some users may face challenges with the implementation and scalability of custom connectors.

A worker component connects to source connectors, extracts data, and transfers it to the destination.

Airbyte Architecture

Airbyte’s UI allows you to send API requests for server or configuration management during the ELT process. These components help store critical information like credentials and replication frequency.

Debezium:

Debezium, an effective CDC solution, allows you to capture all changes in source datasets with minimal latency. This helps maintain real-time synchronization between source and destination.

Debezium is built on Apache Kafka Connect and offers fewer connectors than Airbyte. However, you can use these connectors to ingest row-level changes from various databases and publish them as events to Kafka topics.

Debezium Architecture

Destination applications can then consume these events to synchronize changes made at the source with their datasets.

Key Features and Capabilities

CDC tools offer a range of key features and capabilities, including:

  • Real-time Data Capture: CDC tools can capture changes to data as they occur, enabling real-time data synchronization and analytics. This ensures that your data is always current and accurate.
  • Data Processing: CDC tools can process captured data in real-time, allowing for immediate insights and decision-making. This capability is essential for businesses that rely on timely data to drive their operations.
  • Data Integration: CDC tools can integrate with multiple data sources and systems, enabling seamless data synchronization and exchange. This flexibility allows organizations to consolidate data from various databases, cloud platforms, and other sources.
  • Scalability: CDC tools can handle large volumes of data and scale to meet the needs of growing businesses. This ensures that your CDC tool can continue to perform efficiently as your data volumes increase.
  • Security: CDC tools often include robust security features to ensure data integrity and confidentiality. This includes data masking, encryption, and access controls to protect sensitive information.

Data Integration Methods

Airbyte:

With a versatile architecture, Airbyte facilitates highly effective data integration across various platforms. Airbyte facilitates seamless integration of data flows, ensuring efficient and reliable data management. It supports an extensive library of connectors. If the connector you want is not in the existing connector set, you can also create one using Airbyte’s Connector Development Kit (CDK).

You can set up the source connector to extract data from files stored locally or in cloud environments. This ingested data can then be loaded to the desired destination and transformed using the dbt framework.

Airbyte also offers PyAirbyte, a Python library that offers utilities for using Airbyte connectors in Python. This is especially useful when setting up an Airyte server or cloud account isn't possible or desirable.

Debezium:

Debezium supports connection with various database sources to capture real-time changes. Debezium's capabilities in real-time data synchronization make it a valuable tool for organizations aiming to streamline their data services. It only captures the newly made changes and efficiently syncs them to the destination via Kafka Connect.

With selective data capture, Debezium ensures minimal latency in data synchronization, making it ideal for real-time data integration.

Data Capture and Processing

CDC tools capture data changes by reading database logs, tracking changes to data in real-time, and processing the captured data for immediate use. This process involves:

  • Reading Database Logs: CDC tools read database logs to capture changes to data, including inserts, updates, and deletes. By monitoring these logs, CDC tools can detect and record every change made to the database.
  • Tracking Changes: CDC tools track changes to data in real-time, enabling immediate insights and decision-making. This real-time tracking ensures that any modifications to the data are promptly captured and reflected in the target systems.
  • Processing Captured Data: CDC tools process captured data in real-time, allowing for immediate insights and decision-making. This processing can include transforming the data, applying business rules, and ensuring the data is ready for analysis or further use.

Ease of Use and Setup

Airbyte:

You can directly deploy the cloud version of Airbyte. Airbyte's more user-friendly interface makes it easier for users to deploy and manage their data integration processes. An alternative is a self-managed version using the Airbyte Command Line Tool, which helps you efficiently install and run Airbyte to replicate your data from source to destination.

For troubleshooting, you can leverage its robust community support, which consists of a GitHub forum, help center, and community Slack channel. You can also access Airbyte tutorials on online learning platforms to comprehensively understand its functionality.

Debezium:

Debezium setup requires the prior installation of Zookeeper, Kafka, and Kafka Connect for optimal use of its connectors. If these are not installed, you can configure the connection by specifying the plugin path in the Kafka Connect worker configuration. For more information, refer to the Debezium installation documentation.

After completing the setup, you can easily use a connector by creating a configuration file and employing the Kafka Connect REST API to add connector configuration to your Kafka Connect cluster. Debezium's main interface displays a list of all the available connectors.

Integrations

Airbyte:

Airbyte offers a library of 550+ pre-built connectors for data integration. These connectors enable seamless connections with various data sources, such as tables, databases, and data warehouses.

These connectors support data replication; some also support CDC, and Airbyte supports a wide range of data sources and destinations. You can also integrate Airbyte’s data connectors with analytics and BI tools to gain data-driven insights and make informed decisions.

Debezium:

Debezium integrates directly with a limited set of connectors, mainly databases.

As one of the best CDC tools, Debezium can be effectively combined with other data management tools to enhance data replication and synchronization. This flexibility allows you to integrate Debezium into varied data architectures, making it suitable for real-time data operations.

Scalability and Real-Time Data Replication

Airbyte:

Airbyte can accommodate increased data volumes by ensuring that the Docker containers or Kubernetes pods running your workflows have sufficient execution resources. The worker is the main component that performs all the platform operations, such as data discovery, reading, and writing.

Data synchronization, one of Airbyte’s primary functionalities, requires two workers to read from the source and write to the destination. You must manage the memory and disk space capacity to scale the data-syncing process.

The source worker plays a significant role in memory usage, reading up to 10,000 records at a time. This results in high memory usage when reading large datasets.

For example, a table with an average row size of 0.5MB will require 0.5 * 10000 / 1000 = 5GB of RAM. All the source database connectors in Airbyte are Java connectors; you can leverage Java’s container memory feature that uses only 1/4th of the host’s total memory.

The size of connector images and the duration of sync processes can also take up disk space, impacting scalability. As a best practice, you should allocate at least 30GB of disk space per node. You may also opt to overprovision to accommodate increasing data volumes.

Debezium:

Built on Kakfa, Debezium benefits from its distributed architecture, which spreads the workload across clusters. Debezium's efficient use of system resources ensures it can handle large data volumes without significant operational impact. This ensures that all the connectors continually function even in case of discrepancies, making Debezium highly scalable and fault-tolerant.

However, certain connectors like PostgreSQL might encounter scalability issues due to out-of-memory exceptions or limitations in handling large table snapshots.

Pricing Models

Airbyte:

Airbyte offers a free open-source edition. Airbyte Cloud, Team, and Enterprise editions are available if you need enhanced features and support.

Airbyte Cloud provides a 14-day free trial, which includes 400 free credits, helping new users evaluate the platform’s features before opting for the paid version. The pricing structure of the Cloud version is volume-based, depending upon the data rows. On the other hand, Teams and Enterprise editions have a capacity-based pricing model. These plans charge you according to the number of Airbyte connections you need for syncing data (number of data sources) and refreshment frequency.

Debezium:

Debezium is entirely open-source, allowing free usage for all its capabilities, including its low-latency data change capture. While Debezium is free, it may have limited support for certain advanced features and transformations. This makes it a great choice if you want to implement change data capture without incurring additional costs.

Here is the tabular summary of the Debezium vs Airbyte comparison:

Features Debezium Airbyte
Architecture Debezium is a CDC tool that enables you to sync data using Kafka architecture. Airbyte is an ELT tool that enables data integration from disparate sources into a centralized location. Its architecture consists of platform and connectors as major components.
Data Integration It supports a limited set of connectors, mainly for databases. It offers over 550+ connectors.
Ease of Use You should have optimal knowledge of Kafka Connect to deploy Debezium. Airbyte can be easily deployed on-premise or in the cloud.
Scalability Debezium is scalable due to Kafka’s distributed architecture. However, there may be scalability issues with some connectors, such as Postgres. Airbyte’s scalability can be increased by optimizing the resources of Docker containers or Kubernet pods. You can also scale the memory and disk space of the worker component according to your requirements.
Security Debezium offers security features like data masking to protect your data from unauthorized access. Airbyte offers security features such as Single Sign-On (SSO), SSL, and role-based access controls.
Price It is free. You can use the open-source version for free, but charges apply for the Cloud, Team, and Enterprise editions.

Airbyte vs Debezium: Use Cases

Some of the use cases of Airbyte and Debezium are as follows:

Both tools play a crucial role in ensuring data consistency across various systems.

Airbyte

Airbyte is an open-source data integration tool for consolidating data from various sources into data warehouses, lakes, and databases. It supports a wide range of connectors and is highly customizable, making it a popular choice for businesses looking to streamline their ETL processes.

Debezium

Debezium excels in implementing change data capture, enabling real-time data synchronization across databases. It is an open-source platform that provides low-latency data streaming from databases such as MySQL, PostgreSQL, and MongoDB into Apache Kafka. This makes it ideal for applications that require up-to-date replicas of their data across distributed systems.

Scenarios Where Airbyte Excels

Airbyte is an excellent choice if you want to perform successful data integration. Airbyte's user-friendly interface simplifies the integration process, allowing users to connect different services without extensive coding knowledge. Exploring Airbyte Use cases reveals comprehensive solutions for data management. Some of its use cases include:

  • Data Consolidation: It allows you to consolidate datasets from multiple sources for effective data analytics.
  • Improved Collaboration: You can share the integrated data across different teams of your organization to foster innovation.
  • Business Intelligence: You can use the data integrated with Airbyte to develop interactive dashboards and detailed reports. You can generate actionable insights from your integrated data by leveraging BI tools.

Scenarios Where Debezium is Preferable

Debezium excels in real or near-real-time data synchronization. Debezium captures each change as part of a database transaction, ensuring low-latency data extraction. Debezium's real-time CDC capabilities make it ideal for immediate data capture and processing scenarios. Some of its use cases include:

  • Real-time Data Pipelines: You can use Debezium to build real-time data pipelines involving immediate syncing of data changes. This ensures continuous data flow and timely updates.
  • Anomaly Detection: Debezium can help with real-time anomaly detection in the finance sector by allowing continuous analysis of transaction data. This is crucial for immediate identification and response to unusual patterns, protecting against potential fraud.

How Airbyte Uses Debezium for Log-based CDC?

Airbyte supports log-based CDC from PostgreSQL, MySQL, and Microsoft SQL Server to your chosen destination. It achieves this by integrating Debezium as an embedded library. Debezium also supports schema evolution, ensuring that changes in data structures are managed effectively.

Debezium streams the row-level changes directly from the source database logs, including INSERT, UPDATE, and DELETE operations.

By streaming the changes, Airbyte ensures real-time synchronization with significantly reduced latency. This helps enhance the consistency of data across different systems.

Integrating Airbyte with Debezium

Here are the steps to utilize Airbyte Debezium integration for CDC:

  • Configure PostgreSQL, MySQL, or Microsoft SQL Server in Debezium. Configuring the source systems correctly is crucial for Debezium to capture log-based changes effectively. This involves configuring the source database to allow Debezium to capture log-based changes.
  • Log in to your Airbyte account and configure one of the Debezium-supported connectors as per your requirements.
  • Configure the destination database where you want to integrate the data and replicate the changes.
  • Set up the Airbyte connection between source and destination. You can replicate the data manually or set a replication frequency to meet your requirements.
  • Choose between incremental sync and full refresh for your data synchronization and save changes. Then, click Sync Now to start syncing data from the source connector to the destination.

This completes your replication of data changes by integrating Debezium with Airbyte.

To manage and automate the CDC process, you can use Apache Airflow to schedule and orchestrate the data replication tasks. Read through the Airbyte vs. Airflow comparison to understand the compatibility of their features and optimize the CDC replication strategy.

Choosing the Right CDC Tool

Choosing the right CDC tool depends on several factors, including:

  • Data Integration Needs: Consider the types of data sources and systems you need to integrate with. Ensure that the CDC tool supports the necessary connectors and can handle the specific data integration requirements of your organization.
  • Scalability: Consider the volume of data you need to process and the CDC tool's scalability. Ensure the tool can handle increased data volumes and maintain performance as your data grows.
  • Security: Consider the CDC tool's security features and its ability to ensure data integrity and confidentiality. Look for features like data masking, encryption, and access controls to protect your data.
  • Technical Expertise: Consider the technical expertise required to implement and manage the CDC tool. Some tools may require advanced knowledge of specific technologies, while others offer more user-friendly interfaces for users with limited technical expertise.
  • Cost: Consider the price of the CDC tool and its total cost of ownership. Evaluate whether the tool’s features and capabilities justify the investment and align with your budget.

By considering these factors, organizations can choose the right CDC tool to meet their needs and ensure successful data integration and real-time analytics.

Summing It Up

Data replication is crucial for maintaining data availability and integrity. Change Data Capture (CDC) plays an important role in data replication by enabling the monitoring and real-time updating of datasets to ensure consistency.

Both Airbyte and Debezium offer open-source data integration solutions, providing flexibility and customization for various data workflows. You have looked into a detailed comparison of Airbyte vs Debezium, two prominent data replication tools. Each tool has unique features that cater to different business needs and use cases. By comparing the various features of both platforms, you can choose the one that best meets your requirements.

However, integrating Airbyte with Debezium can enhance your data replication efforts. You can utilize this to sync and analyze your datasets more effectively and achieve useful outcomes to drive profitability for your business.

FAQs

1. Does Airbyte use Debezium?

Airbyte uses Debezium for log-based change data capture with its PostgreSQL, MySQL, and Microsoft SQL Server connectors, enabling effective data replication from these sources.

2. Is Debezium CDC log-based?

Yes, Debezium is a log-based CDC tool. It can capture all source data changes, including deletions, with minimal latency and help you manage schema and metadata changes efficiently.

3. CDC or ELT, which is better?

Change data capture focuses on tracking newly made changes in the source data and reflecting them in the target system for real-time data synchronization.

Conversely, ELT involves extracting, loading, and transforming data; it can be used for complex data transformations.

You can choose CDC, ELT, or take a hybrid approach for effective data replication.

4. How do Airbyte and Debezium differ when migrating data to a target data warehouse?

Debezium excels at change data capture (CDC) for real-time replication from transactional databases, but it typically requires additional tools to load that data into a target data warehouse.

Airbyte, on the other hand, offers an end-to-end ELT pipeline with built-in connectors for syncing data directly into warehouses like Snowflake, Redshift, and BigQuery—making data migration faster and more accessible for modern teams.

5. Which tool is better suited for data engineers managing a vast array of data sources?

Airbyte is purpose-built for flexibility, supporting many sources and destinations out of the box—including databases, APIs, SaaS platforms, and more.

While Debezium is powerful for CDC from a limited number of databases, it’s not intended for broad extraction use cases. For data engineers working with diverse systems and formats, Airbyte provides more coverage and a lower barrier to entry.

6. Can Airbyte or Debezium move data from a data lake to a warehouse?

Airbyte supports syncing from data lakes like Amazon S3 and Google Cloud Storage into target data warehouses, allowing teams to operationalize semi-structured or raw files.

Debezium, however, is not designed for this use case—it focuses solely on streaming changes from supported databases. If your pipeline involves moving or transforming data stored in a data lake, Airbyte is the more appropriate tool.

7. Do Airbyte or Debezium support use cases involving vector databases?

While neither tool currently offers first-class support for vector databases, Airbyte’s connector-based architecture makes integrating with emerging database types easier as demand grows.

Debezium’s support is focused on traditional transactional databases. As vector database adoption increases in AI/ML pipelines, Airbyte is better positioned to adapt quickly through community or custom connector development.

8. How do Airbyte and Debezium compare in terms of setup and usability for data transformation activities?

Debezium provides low-level CDC streams and requires additional components (e.g., Kafka, Kafka Connect, transformations) for building full pipelines.

Airbyte includes transformation capabilities, schema mapping, and orchestration integrations out of the box, simplifying data transformation activities for teams that want to gain insight faster without extensive configuration.

Features

Debezium

Airbyte

Architecture

Debezium is a CDC tool that enables you to sync data using Kafka architecture.

Airbyte is an ELT tool that enables data integration from disparate sources into a centralized location. Its architecture consists of platform and connectors as major components.

Data Integration

It supports a limited set of connectors, mainly for databases.

It offers over 550+ connectors.

Ease of Use

You should have optimal knowledge of Kafka Connect to deploy Debezium.

Airbyte can be easily deployed on-premise or in the cloud.

Scalability

Debezium is scalable due to Kafka's distributed architecture. However, there may be scalability issues with some connectors, such as Postgres.

Airbyte's scalability can be increased by optimizing the resources of Docker containers or Kubernet pods. You can also scale the memory and disk space of the worker component according to your requirements.

Security

Debezium offers security features like data masking to protect your data from unauthorized access.

Airbyte offers security features such as Single Sign-On (SSO), SSL, and role-based access controls.

Price

It is free.

You can use the open-source version for free, but charges apply for the Cloud, Team, and Enterprise editions.

Airbyte vs Debezium: Use Cases

Some of the use cases of Airbyte and Debezium are as follows:

Scenarios Where Airbyte Excels

Airbyte is an excellent choice if you want to perform successful data integration. Exploring Airbyte Usecases reveals comprehensive solutions for data management. Some of its use cases include:  

  • Data Consolidation: It allows you to consolidate datasets from multiple sources for effective data analytics.
  • Improved Collaboration: You can share the integrated data across different teams of your organization to foster innovation.
  • Business Intelligence: You can use the data integrated with Airbyte to develop interactive dashboards and detailed reports. By leveraging BI tools, you can generate actionable insights from your integrated data.

Scenarios Where Debezium is Preferable

Debezium excels in real or near-real-time data synchronization. Some of its use cases include:

  • Real-time Data Pipelines: You can use Debezium to build real-time data pipelines involving immediate syncing of data changes. This ensures continuous data flow and timely updates.
  • Anomaly Detection: Debezium can help with real-time anomaly detection in the finance sector by allowing continuous analysis of transaction data. This is crucial for immediate identification and response to unusual patterns, protecting against potential fraud.

How Airbyte Uses Debezium for Log-based CDC?

Airbyte supports log-based CDC from PostgreSQL, MySQL, and Microsoft SQL Server to any destination of your choice. It achieves this with the integration of Debezium as an embedded library.

Debezium streams the row-level changes, including INSERT, UPDATE, and DELETE operations, directly from the source database logs.

By streaming the changes, Airbyte ensures real-time synchronization with significantly reduced latency. This helps enhance the consistency of data across different systems.

Integrating Airbyte with Debezium

Here are the steps to utilize Airbyte Debezium integration for CDC:

  • Configure PostgreSQL, MySQL, or Microsoft SQL Server in Debezium. This involves configuring the source database to allow Debezium to capture log-based changes.
  • Log in to your Airbyte account and configure one of the Debezium-supported connectors as per your requirement.
  • Configure the destination database where you want to integrate the data and replicate the changes.
  • Set up the Airbyte connection between source and destination. You can choose to replicate the data manually or set a replication frequency to meet your requirements.
  • Choose between incremental sync or full refresh for your data synchronization and save changes. Then, click Sync Now to start syncing data from the source connector to the destination.

This completes your replication of data changes by integrating Debezium with Airbyte.

To manage and automate the CDC process, you can use Apache Airflow for scheduling and orchestrating the data replication tasks. Read through the Airbyte vs Airflow comparison to understand the compatibility of their features to optimize the CDC replication strategy.

Summing It Up

Data replication is crucial for maintaining data availability and integrity. Change Data Capture (CDC) plays an important role in data replication by enabling the monitoring and real-time updating of datasets to ensure consistency.

You have looked into a detailed comparison of Airbyte vs Debezium, two prominent data replication tools. By comparing the various features of both platforms, you can choose the one that best meets your requirements.

However, integrating Airbyte with Debezium can enhance your data replication efforts. You can utilize this to sync and analyze your datasets more effectively and achieve useful outcomes to drive profitability for your business.

FAQs

1. Does Airbyte use Debezium?

Yes, Airbyte uses Debezium for log-based change data capture with its PostgreSQL, MySQL, and Microsoft SQL Server connectors, enabling effective data replication from these sources.

2. Is Debezium CDC log-based?

Yes, Debezium is a log-based CDC tool. You can use it to capture all source data changes, including deletions, with minimal latency. It also helps you manage schema and metadata changes efficiently.

3. CDC or ELT, which is better?

Change data capture focuses on tracking newly made changes in the source data and reflecting them in the target system for real-time data synchronization.

Conversely, ELT involves extracting, loading, and transforming data; it can be used for complex data transformations.

You can choose CDC or ELT or take a hybrid approach for effective data replication.

Want to know the benchmark of data pipeline performance & cost?

Discover the keys to enhancing data pipeline performance while minimizing costs with this benchmark analysis by McKnight Consulting Group.

Get now

Compare Airbyte's pricing to other ELT tools

1 minute cost estimator

Don't trust our word, trust theirs!

No items found.

What our users say

Apostol Tegko
Data Lead
Extensibility to cover all your organization’s needs

Airbyte has become our single point of data integration. We continuously migrate our connectors from our existing solutions to Airbyte as they became available, and extensibly leverage their connector builder on Airbyte Cloud.

Check the success story
Chase Zieman
Chief Data Officer
Chase Zieman headshot
Reliable infrastructure to power your own product

Airbyte helped us accelerate our progress by years, compared to our competitors. We don’t need to worry about connectors and focus on creating value for our users instead of building infrastructure. That’s priceless. The time and energy saved allows us to disrupt and grow faster.

Check the success story
Alexis Weill
Data  Lead
Extensibility, scalability and no vendor lock-in

We chose Airbyte for its ease of use, its pricing scalability and its absence of vendor lock-in. Having a lean team makes them our top criteria.
The value of being able to scale and execute at a high level by maximizing resources is immense

Check the success story