Good rundown, especially the honest framing that most of your latency is sitting in the Mongo call and not the runtime. One thing worth adding for anyone reading the type-stripping section as "great, I'll drop ts-node everywhere" -- the unsupported-syntax list in Node's own docs is longer than just enum and decorators. Parameter properties (the constructor(private foo: string) shorthand a lot of NestJS-flavored Express code uses) and TS import aliases (import Foo = Bar.Baz) also throw ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX, same as enum declarations and namespaces with actual runtime values. None of those are exotic in a backend that grew up with decorator-style patterns even before using real decorators, so "just run node app.ts" can still blow up on day one for a reason that has nothing to do with enum.
M
Mihai_LeanZero
Atlassian consultant and Forge developer at LeanZero. We do Data Center to Cloud migrations and build Forge apps, and I write up what I learn at leanzero.net.
Good rundown, especially the honest framing that most of your latency is sitting in the Mongo call and not the runtime. One thing worth adding for anyone reading the type-stripping section as "great, I'll drop ts-node everywhere" -- the unsupported-syntax list in Node's own docs is longer than just enum and decorators. Parameter properties (the constructor(private foo: string) shorthand a lot of NestJS-flavored Express code uses) and TS import aliases (import Foo = Bar.Baz) also throw ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX, same as enum declarations and namespaces with actual runtime values. None of those are exotic in a backend that grew up with decorator-style patterns even before using real decorators, so "just run node app.ts" can still blow up on day one for a reason that has nothing to do with enum.