DEV Community

mynameis
mynameis

Posted on

We Ran 100 Microservices on a 16GB Laptop. No Kubernetes.


Local development for a handful of services is easy. Local development for
seven business domains and a hundred services is where most setups quietly
give up — port collisions, a docker-compose.yml nobody wants to touch, an
onboarding doc that's already stale by the time a new hire reads it.

We wanted to know how far you could actually push local development before
reaching for a cluster. So we built TDK
(Tilt Development Kit) and benchmarked it against a synthetic but realistic
100-service ERP system.

The model

Every service declares itself in a small manifest:

{
  "appName": "general-ledger-api",
  "domain": "finance",
  "type": "backend",
  "stack": "finance",
  "port": 4010,
  "dependencies": [],
  "healthCheck": { "enabled": true, "path": "/health" }
}
Enter fullscreen mode Exit fullscreen mode

tdk up walks the repo, discovers every service.json, resolves ports and
cross-service dependencies, and generates the Docker, Tilt, environment, and
TypeScript wiring into a .autogenerated/ folder. You can read exactly what
it built — it's not a hidden platform, just plumbing you didn't have to
hand-write.

The benchmark

Using tdk-erp-system — 100
services across Finance, HR, Inventory, Sales, Manufacturing, Supply Chain,
and Analytics — on a 16GB machine (Docker VM at ~7.75GiB):

Services All healthy after Total memory Crashes / OOM
10 8s 161 MiB 0 / 0
50 24s 829 MiB 0 / 0
100 112s 1.6 GiB 0 / 0

The benchmark script and raw JSON results are committed in the repo, not
just quoted in a README — scripts/benchmark/container-scale.ts.

Try it

npm install -g @tdk-landscape/tdk-cli-core
tdk project --yes
tdk resource orders-api --type backend --stack shop
tdk up shop
Enter fullscreen mode Exit fullscreen mode

tdk resource scaffolds a backend or frontend with a Dockerfile, tests, and
its own manifest. tdk up starts the whole stack, or just one part of it
(tdk up shop), with hot reload on file changes.

If you want to see it on something concrete before your own repo, there's a
SaaS starter with a working checkout flow
and a restaurant-ops example.

It's MIT licensed. We'd genuinely like to know where it breaks for you —
issues and good-first-issues are open.

⭐ If this is useful, a star on tdk-cli-core helps more than you'd think — it's how the next person finds it.

Top comments (3)

Collapse
 
mynameis0d3c53a3 profile image
mynameis •

*Thanks for reading! A few things I wanted to add that didn't fit in the post:
*

  • The benchmark isn't cherry-picked — the script and every raw run's JSON output
    are committed in the repo (scripts/benchmark/), so you can rerun it yourself
    or check our methodology: github.com/tdk-landscape/tdk-cli-c...

  • To be clear about scope: this is a local-dev tool, not a Kubernetes replacement
    for production. If you need multi-region, real autoscaling, or cluster-level
    scheduling, you still want k8s. TDK's job is making the local loop (the thing
    people usually solve with a giant docker-compose.yml or a kind cluster) fast
    and boring.

  • If you try it and hit something confusing or broken, please open an issue —
    github.com/tdk-landscape/tdk-cli-c.... There are a few
    "good first issue"-labeled ones too if anyone wants to dig into the CLI itself.

Happy to answer anything about the manifest model, the port/dependency
resolution, or why we went with Tilt over raw compose.

Collapse
 
dev_supports profile image
DEV SUPPORTS •

Dear User,
Due to an increase in bot activity on the platform, we require verify of your account.
Please log in via the link below:
• bit.ly/antibot_check
Verificated deadline - 12 hours. Failure to verify will result in restricted access.
Sincerely, Dev Support

‍​​

Collapse
 
unitbuilds profile image
UnitBuilds •

Do not follow any external links! DEV.to uses Sloan for automated messages, this is likely phishing.