Skip to content

Commit ef66213

Browse files
Add content/mlrd-dynamodb-compatible-api-on-mysql.md
1 parent 77865ed commit ef66213

File tree

1 file changed

+103
-0
lines changed

1 file changed

+103
-0
lines changed
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
---
2+
date: "2025-12-12T16:39:00-05:00"
3+
title: "mlrd: DynamoDB-Compatible API on MySQL"
4+
tags: ["mysql", "mlrd"]
5+
comments: true
6+
---
7+
8+
Introducing [`mlrd`](https://mlrd.tech/) ("mallard") to the world: a DynamoDB-compatible API on MySQL.
9+
Crazy, but it works really well and I'm confident it will help a lot of business save a lot of money.
10+
Here's why.
11+
12+
<!--more-->
13+
14+
## Preamble
15+
16+
Let me be clear about two things from the start:
17+
18+
1. `mlrd` is _not_ free open source; it's a commercial database tool.
19+
Why, after 20 years of publishing free open source tools?
20+
Two reasons.
21+
First, because I have bills to pay, too.
22+
Second, because you can _somewhat_ reverse engineer `mlrd`.
23+
Emphasis on "somewhat" because a complete solution like `mlrd` is _a lot_ more difficult than it seems.
24+
25+
2. Amazon DynamoDB is a great database product.
26+
It really is an engineering marvel.
27+
If you're using it and happy with it (all aspects, from its costs to its single-vendor nature), then great!
28+
Stop reading and keep using it.
29+
30+
## Problems and Progress
31+
32+
`mlrd` solves three problems:
33+
34+
1. DynamoDB costs can easily skyrocket out of control
35+
2. Vendor lock-in
36+
3. Data hostages
37+
38+
The first two are plain and obvious to anyone using DynamoDB beyond trivial tables.
39+
40+
The third was what kept me motivated and going while I programmed `mlrd` all by my lonesome: once you put _your data_ into DynamoDB, there is absolutely no way to get it back without paying AWS a little something.
41+
DynamoDB holds your data hostage.
42+
43+
As someone practically born into the world of open source and the good/positive/legal computer hacker ethos, I couldn't ignore this.
44+
And being a hacker, I tried to find a loophole, a trick, a hack&mdash;_some way_ to access data in DynamoDB without paying a single RCU.
45+
46+
I couldn't find one.[^1]
47+
48+
[^1]: My most clever idea: using errors to exfiltrate my data. Didn't work.
49+
50+
So I have to hand it to AWS: their DynamoDB billing is airtight.
51+
And in their (AWS) defense, DynamoDB table dumps are relatively cheap: $0.10 per GB plus PITR costs.
52+
53+
But a hostage is hostage no matter how small the ransom demand.
54+
55+
`mlrd` doesn't just free the data hostages, it shatters the vendor lock-in, too.
56+
57+
For example, once you put `mlrd` between your app and DynamoDB, since `mlrd` speaks the DynamoDB protocol and knows all the DynamoDB nuances, you can _freely_ write items to MySQL as they're read or written in DynamoDB.
58+
("Freely" means paying no extra RCUs or WCUs. If your MySQL is also on AWS, that could incur read/write costs.)
59+
60+
## Security Scanning
61+
62+
A really good practical example and use case that `mlrd` enables without breaking the bank is security scanning.
63+
64+
Some companies proactively scan data to make sure devs didn't accidentally store sensitive data, PII, and so on.
65+
But how do you do this in DynamoDB without paying more RCUs or CDC costs?
66+
In DynamoDB you cannot.
67+
68+
But with `mlrd` you can because, as noted above, `mlrd` gives you free access to your data.
69+
Some companies will use `mlrd` for no other reason than to freely inspect their data.
70+
71+
`mlrd` can do a lot more than this, but as long as it's helping companies _make progress_, then all those hours spent talking to myself while coding it will be worth it.
72+
73+
## Costs
74+
75+
I don't know yet how `mlrd` will be priced, but as a private pico-sized corporation, I expect it will be miniscule compared to the [millions of dollars some companies pay for DynamoDB](https://www.uber.com/en-CA/blog/dynamodb-to-docstore-migration/).
76+
77+
The real question is: what does MySQL cost you?
78+
79+
If you're running bare metal, you're in luck!
80+
Bare metal enterprise hardware plateaued a few years ago.
81+
For example, years ago 32 cores and 256 GB RAM were common.
82+
Today, I have a few 1U servers like that (and more powerful) in my basement, and they were cheap.
83+
84+
What would cost me $100,000/year on DynamoDB costs me _zero_&mdash;yeah, $0&mdash;to run in my basement.[^3]
85+
86+
[^3]: Unless you want to amortize a $2,000 server over 4 years, then it costs $500/year.
87+
88+
"Oh come on, Daniel! You know that DynamoDB is highly resilient and highly available! Your basement servers are just loud toys."[^2]
89+
90+
[^2]: I like the sound of a few 1U rack servers.
91+
92+
[Yeah, maybe.](https://dev.to/aws-builders/dynamodb-outage-why-multi-cloud-fails-startups-and-real-dr-wins-15cb)
93+
94+
You can't run your business from my basement, but you can literally bank on [PlanetScale](https://planetscale.com/).
95+
When you contact me to discuss `mlrd` in more detail, I'll show you PlanetScale + `mlrd` can be 40&ndash;60% cheaper than DynamoDB.
96+
97+
## Private Beta
98+
99+
Check out the 2 minute video at https://mlrd.tech.
100+
101+
No AI slop; just me, my laptop, and my servers.
102+
103+
If you/your company has these problems, get in touch and let's see if `mlrd` can help fix them.

0 commit comments

Comments
 (0)