DEV Community

Cover image for I built an open-source tool to query on-prem databases and DynamoDB in plain English
Shailesh Kadam
Shailesh Kadam

Posted on

I built an open-source tool to query on-prem databases and DynamoDB in plain English

The Problem

If you've ever worked in a hybrid cloud environment, you know the pain.

You've got legacy data sitting on-premise — MySQL, PostgreSQL, Oracle, SQL Server — and you need it in AWS. So you write a custom sync script. Then another one. Then a cron job breaks at 2am. Then someone changes a schema and the whole pipeline falls apart.

I've been in that situation too many times. So I built IntelliHybrid.


What is IntelliHybrid?

IntelliHybrid is an open-source Python framework that creates a secure, bidirectional sync between your on-premise databases and AWS DynamoDB — with an AI layer on top that lets you query your data in plain English.

No more writing FilterExpression and KeyConditionExpression by hand. Just ask.

result = await assistant.chat("Show me all orders from customer C-001")
result = await assistant.chat("How many products have stock below 10?")
result = await assistant.chat("Find users who signed up this month")
Enter fullscreen mode Exit fullscreen mode

It figures out the right DynamoDB operation — query, scan, or get_item — and returns live data.


Core Features

🔄 Bidirectional Sync

Data flows both ways — on-prem → DynamoDB and DynamoDB → on-prem — on a configurable schedule.

intellihybrid sync --mode bidirectional --interval 60
Enter fullscreen mode Exit fullscreen mode

🔐 Security First

  • KMS-encrypted DynamoDB tables by default
  • TLS 1.3 for all data in transit
  • Least-privilege IAM roles auto-generated per table
  • Secrets via environment variables or AWS Secrets Manager — never in config files

⚡ Auto-Provisioning

Define your tables in a simple YAML config and IntelliHybrid creates everything in AWS for you.

dynamodb:
  tables:
    - name: orders-table
      partition_key: { name: orderId, type: S }
      sort_key: { name: customerId, type: S }
      billing_mode: PAY_PER_REQUEST
Enter fullscreen mode Exit fullscreen mode

🤖 AI-Generated Schema Docs

One call produces a full data dictionary — useful for onboarding, compliance, or just understanding what's in a table.

dictionary = await intel.generate_data_dictionary("orders-table")
Enter fullscreen mode Exit fullscreen mode

Output:

# Data Dictionary: `orders-table`

| Attribute       | Type | Description                                       |
|-----------------|------|---------------------------------------------------|
| orderId 🔑 PK   | S    | Unique identifier for each order transaction      |
| customerId 🔑 SK| S    | References the customer — links to users-table PK |
| status          | S    | Fulfillment state: processing, shipped, delivered |
| total           | N    | Order value in USD cents                          |
| createdAt       | N    | Unix timestamp, used for date-range queries       |
Enter fullscreen mode Exit fullscreen mode

Getting Started

pip install intellihybrid
intellihybrid init --config config/config.yaml
intellihybrid sync --mode bidirectional
Enter fullscreen mode Exit fullscreen mode

Setup takes about 5 minutes.


Try the Live Demo

If you want to see the AI query interface without setting anything up, there's a fully interactive browser demo:

👉 Live AI Demo

No backend, no AWS account needed — runs entirely in the browser.


What's Next

  • MongoDB connector (coming soon)
  • Web UI dashboard
  • CDC real-time streaming
  • Terraform module

Links

If this solves a pain point you've had, a ⭐ on GitHub goes a long way. And I'd love to hear feedback — what database or feature would make this useful for your setup?

Top comments (0)