Questions buyers ask
Is Molina a service or a library?
A service. I run it on my machine and you install nothing. I have run experiments on a disk that says saved before it is, a cluster with its network split and a program with racing threads.
Who is this for?
Molina is for a business owner or head of engineering whose product depends on a database or on several servers working together, and for the engineers who run that product. They are responsible for databases, distributed systems, infrastructure and data durability, where losing data a customer was told was saved, breaking a consistency promise or being unable to reproduce a failure has serious consequences.
Does it run in my environment?
No. Your software runs on my hardware, in a virtual computer. Nothing is installed in your environment and nothing is added to your tests.
Does it simulate failures or really break things?
I cause them inside a virtual computer, by changing the disk, the network and the power beneath your software, so nothing of yours is damaged.
What is a network split?
The connection between servers is cut, so each side sees only part of the system. Glossary
What is a disk that says saved before it is?
I make a disk say a write is stored when it is only in memory, as a real disk with a cache can, so a power cut loses the write. Glossary
What do I need to give you?
Your software as a Linux container image or a docker-compose file, and the promise it has to keep. No preparation.
What do I get back?
When a promise breaks: a replay code, a recording you can read and check and, where it can be reduced, the smallest set of failures that still breaks it.
What if nothing breaks?
You get a recording of what ran and under what conditions. A clean report is still a result: what was explored held up, and nothing more.
What does it cost?
The call is free. Priced case by case; the price is settled after the call.
How long does it take?
There is no fixed length. I agree on the scope with you on the free call, and the work ends when it has a result either way.
Can I run it myself?
No, not yet. There is no installer. I run it. I replay a finding on request until the day I delete your files, which is 30 days after the report. Ask for a longer period before you send anything.
What can it not run?
Software that only runs on Windows, software that needs a GPU or special hardware, and software with no container image. Limits
Does it find bugs for sure?
No. I cannot promise to find a bug, and a mature library might have nothing to find.
How exact is the replay?
Replay matched exactly in five of my runs, each against its original:
- An Akka.NET cluster with its network split: in 3 of 3 pairs, all 1,476 network messages had the same outcome, delivery time and contents, and the same 42 were cut. Standing: MIGHT. The record
- A .NET program with four racing threads: 96 restored copies, 90 counted, none differed. Standing: MIGHT. The record
- Postgres on a disk that says saved before it is, in exact mode: 3 of 3 replays byte for byte identical in console, timings and switch log. The switch log was empty: no network message crossed the switch. Standing: MIGHT. The record
- A NATS pair with a split in virtual time: 3 of 3 replays, all five files byte for byte identical; with another replay code, 0 of 5 files matched. Standing: MIGHT. The record
- Akka's own test, NodeUpSpec: 36 of 36 copies byte for byte identical on an idle host and 36 of 36 on a loaded one. Standing: UNRATED. The record
Replay is not yet measured on your software until I run it. The limits
What happens to my data?
Before any image arrives, you and I agree on how it is kept, deleted and read. How I treat your data
Why not just use my own engineers?
After an incident nobody could reproduce, engineers argue about the cause. I turn that argument into an experiment, and you get a result either way, with a recording your engineers can read and check.
They still fix what is found. Ordinary tests run on a computer that does not fail, so they cannot cut the power a moment after a database said saved. Building this in house means building a hypervisor, the program that runs virtual computers. That is specialist work.
Who are you?
I'm Will Ehrendreich. SageTech is me, and I run every engagement myself.