Skip to content

Add ReSQL: SQL-Based Relational Service Layer for ResilientDB #238

@Krishi1211

Description

@Krishi1211

Title

Add ReSQL: SQL-Based Relational Service Layer for ResilientDB


Description

Summary

ResilientDB currently exposes a key-value (KV) storage abstraction, which limits expressiveness for applications requiring relational schemas, joins, range queries, and analytical operations.

This issue proposes introducing ReSQL, a SQL-based service layer that enables relational querying capabilities on top of ResilientDB’s existing distributed ledger execution model. ReSQL integrates DuckDB as an embedded SQL backend and provides structured relational semantics without modifying core consensus or ledger protocols.


Motivation

The current KV model restricts:

  • Structured relational schema modeling
  • Join operations
  • Range queries
  • Aggregations and analytical queries
  • Developer ergonomics for complex application logic

Applications needing relational features must rely on external database systems. ReSQL enables structured SQL interaction directly within ResilientDB.


Proposed Changes

Storage & Execution

  • Integrate DuckDB as an embedded SQL engine
  • Extend execution paths to support SQL-based read/write workloads
  • Add runtime flags for enabling/disabling ReSQL mode
  • Maintain backward compatibility with KV-based applications

Service Layer

  • Introduce a dedicated ReSQL service responsible for:
    • Managing SQL contexts
    • Parsing and executing SQL statements
    • Handling query lifecycle
    • Returning structured tabular results

Tooling

  • Add standalone startup scripts for ReSQL
  • Provide test_sql for validating SQL workloads
  • Include utilities for relational schema bootstrapping

Compatibility

  • Fully optional module
  • No modifications to consensus or ledger protocols
  • KV applications remain unaffected
  • SQL execution enabled via runtime configuration

Validation

  • Successful table creation
  • Insert and retrieval correctness
  • Selection and projection validation
  • End-to-end SQL execution via test_sql

Expected Benefits

  • Enables RDBMS-style semantics for decentralized applications
  • Removes need for external relational DBMS
  • Improves developer productivity via standard SQL abstractions
  • Leverages DuckDB’s in-process analytical execution

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions