For asynchronous application workflows

Test the paths your tests miss.

Normal tests run the path you wrote. Geometer tries different event orders, retries, delays, and failures—then gives you simple steps to replay the bug.

One command · Runs locally · No new modeling language

checkout-refund.test.ts Bug found
Business rule broken Refunded orders must never ship.
Should happenrefunded · unshipped
Actually happenedrefunded · shipped
geo replay case_71b4
Only the essential steps5 eventsReplayable

01 · RunUse the test you already have.Geometer watches the workflow and its state changes.
02 · VaryChange timing and order.Try supported retries, delays, failures, and duplicate events.
03 · ExplainShow only what caused the bug.Turn a complicated failure into a short sequence.
04 · FixReplay it until it stays fixed.Save the failure as a test for every future change.

Why normal tests miss these bugs

Every service can work—and the workflow can still fail.

A webhook arrives twice. A worker retries after success. A refund and shipment happen together. Each component does its job, but the company ends up in a state nobody intended.

Normal tests

Run the steps in the order you wrote.

They are excellent for expected behavior, but they rarely try the timing mistakes that cause the hardest production bugs.

Logs and observability

Explain the failure after it reaches production.

They help your team investigate, but a customer may encounter the bug first.

Geometer

Tries other possible orders before release.

Tell Geometer what must remain true. It searches for a sequence that breaks the rule and shows exactly how to replay it.

Start with one command

No model to draw. No new language to learn.

Run geo test against a workflow your application already knows. Geometer reports what it found in the terminal and lets you test other possible executions safely. Open a visual report when you need to investigate.

01

Run your test

Geometer detects supported libraries, watches the workflow, and reports the result locally in your terminal.

npx geo test -- npm test checkout
02

Choose the rule

Write what must never happen, such as “a refunded order must never ship.” Start from a template or write your own.

rule("refunded orders never ship")
03

Try other executions

Geometer changes supported event orders, deliveries, retries, failures, and timing inside the test environment.

geo explore run_82d1
04

Replay the bug

Geometer removes unrelated noise and gives your team a short sequence it can reproduce, fix, and keep in CI.

geo replay case_71b4

Tell Geometer what must never happen

Test the outcome your customer actually cares about.

A healthy server can still charge someone twice. Geometer checks business state: money charged, inventory reserved, approvals granted, messages sent, and records committed.

TypeScriptPostgresBullMQWebhooksVitestDocker Compose
geometer.rules.tsTypeScript
// Name the business rule in plain language.
rule.sql(
  "refunded orders must never ship",
  `
    NOT EXISTS (
      SELECT 1
      FROM orders
      WHERE refunded_at IS NOT NULL
        AND shipment_id IS NOT NULL
    )
  `
);

From finding to permanent protection

Find the bug once. Keep it out of every release.

Geometer turns a difficult race into a short replayable sequence. Fix it, replay the exact failure, and keep the workflow protected in CI whenever the code changes.

Protect a workflow
Changerefund worker is updatedcode written
Testsexisting test suite passesexpected path
Geometertries retry after lost acknowledgementother path
Findingcustomer is refunded twicebug found
Replayidempotency is fixed and rerunregression added

Ordinary tests confirm the path you wrote. Geometer searches for another valid path that breaks the rule.

Clear about what was tested

Geometer tells you what it found—and what it did not test.

Every result includes the environment, failures, event choices, limits, and blind spots. “No bug found” is never turned into “this can never fail.”

!

Bug found

The rule broke. Geometer attaches the exact sequence, state difference, and command needed to replay it.

No bug found within these limits

Geometer shows which events, failures, and schedules it tried—and exactly where it stopped.

?

Could not determine

If Geometer could not observe or control something important, it shows the missing piece instead of guessing.

Start narrow. Expand through protected workflows.

Protect one critical workflow, then the application.

Geometer starts with one TypeScript workflow where ordering mistakes have real consequences. The same event, rule, exploration, and replay model expands to more stacks and more of the application.

Build now

One TypeScript workflow

Postgres, HTTP, webhooks, queues, retries, and important business state.

Expand next

More application stacks

Python, Java, Go, Kafka, cloud queues, workflows, and additional databases.

Then

Application reliability layer

Continuously protect checkout, refunds, fulfillment, inventory, billing, and payouts.

Later

Runtime protection

Block well-understood unsafe transitions only after the testing engine is trusted.

Start free. Add the team when it works.

Use it locally, then run it on every important change.

Developers can prove Geometer on one workflow for free. Teams pay to share results and run deeper checks in CI. Enterprises add private runners and organizational controls.

Developer

Local CLI and SDK

Prove Geometer on a real workflow before involving procurement.

  • CLI and local visual workbench
  • Local path and failure testing
  • Replayable bug reports
  • Open workflow and rule formats
Free
Enterprise

Private and governed

Run against sensitive systems with predictable capacity and organizational controls.

  • Customer-VPC runners
  • SSO, RBAC, and audit history
  • Retention and artifact controls
  • Implementation support
Annual agreement

Test one real workflow

Bring us the workflow where a hidden race would matter.

Tell us what must never happen.

We will test one TypeScript workflow with your team and search for a consequential bug your existing tests do not cover. You receive either a replayable finding or a clear report showing what Geometer tried, what it could not test, and what should remain protected in CI.

[email protected]
One bounded workflowIsolated environmentDurable CI assets