# eXtremeDB/rt Documentation

> ## Overview

> In mission- and safety-critical domains such as avionics, autonomous systems, railway control, and industrial automation, time predictability is not optional—it’s essential. These systems require deterministic, fully controllable database management tightly integrated with modern real-time operating systems (RTOS). They must support time and space partitioning, preemptive scheduling, and hard execution deadlines, with no tolerance for jitter or unpredictable behavior.

> RAM-only databases offer optimal timing guarantees. However, growing data volumes and evolving compliance requirements make persistent storage a necessity. NAND flash is now the standard for embedded storage, but it introduces challenges in maintaining real-time predictability due to its inherent media management complexity.

> This is where eXtremeDB/rt stands apart. It is the first commercially supported, deterministic real-time database system engineered to preserve temporal consistency through time-aware transaction processing. Designed for hard real-time environments, eXtremeDB/rt ensures predictable transaction execution within defined deadlines.

> Importantly, eXtremeDB/rt supports both managed and unmanaged flash storage. While managed devices like SSDs and eMMC do not guarantee deterministic latency, unmanaged raw NAND flash does—with the right architecture. eXtremeDB/rt includes a tightly integrated Transactional Flash Translation Layer (TFTL), enabling predictable access to unmanaged NAND by aligning media management with the database’s internal transaction logic.

> This gives embedded developers the flexibility to choose the appropriate flash medium based on cost, hardware constraints, and real-time requirements—without sacrificing timing guarantees.

> ## When to choose eXtremeDB/rt?

> The fundamental differences between mainstream eXtremeDB and eXtremeDB/rt lie in two areas: real-time transaction processing and persistent storage handling.

> The mainstream eXtremeDB is a high-performance embedded database that supports both in-memory and persistent storage. It provides ACID compliance, SQL support, advanced indexing, and programming APIs in C, C++, Java, Python, and more. It is highly portable and runs on Linux, Windows, macOS, and most RTOS platforms. Persistence is supported through flexible REDO/UNDO logging and compatibility with a variety of file systems and storage devices.

> eXtremeDB/rt is a high-performance, fully ACID-compliant embedded database, purpose-built for hard real-time systems that demand deterministic access latencies and predictable transaction execution within tightly bounded time constraints. It features real-time transaction scheduling and configurable deadline policies, making it especially suitable for mission-critical domains such as avionics, industrial control, and other safety-critical environments. The API is limited to C and C++, which aligns with the languages typically used in such systems.

> Its transaction managers use a Copy-on-Write (CoW) model, which guarantees consistent and time-bounded access behavior by avoiding in-place modifications—eliminating the timing unpredictability often introduced by traditional update methods.

> Persistent storage support in eXtremeDB/rt is highly optimized for embedded flash-based storage, which has become the standard in modern real-time systems. While the system supports raw block devices and file system-based storage, it goes further by integrating NAND flash management directly into the kernel. This allows the database engine to control low-level flash behavior—such as wear leveling and garbage collection—thereby maintaining consistent access latency and ensuring media operations remain predictable.

> eXtremeDB/rt applications typically run under a real-time operating system (RTOS), where integration with the task scheduler and direct access to hardware resources is required. Though the kernel is available for general-purpose platforms like Linux, it is most often deployed in systems where strict timing guarantees are necessary.

> When choosing between the mainstream and /rt versions of eXtremeDB, application developers should consider their specific data management requirements and system constraints.

> Applications that require high-performance access to RAM-based or persistent storage, distributed database architectures, and development flexibility—such as support for multiple platforms and programming languages—are well-suited for the mainstream version of eXtremeDB.

> On the other hand, applications that operate under a real-time operating system (RTOS), require tight hardware integration, must guarantee predictable storage access latencies, or need to interact directly with NOR or NAND flash devices (bypassing intermediate layers like file systems), will benefit most from adopting eXtremeDB/rt as their database platform.

> - Currently supported platforms
> - eXtremeDB/rt Fundamentals
> - Programming with eXtremeDB/rt