payload-bot / payload-neo

The largest TF2-based Discord bot serving over 50,000 users daily.
https://payload.tf
MIT License
15 stars 5 forks source link

Remove nest #152

Closed c43721 closed 2 years ago

c43721 commented 2 years ago

Remove Nest There's some issues regarding nestjs that isn't easily solvable.

Problem 1: Fastify Fasify would make this API much faster and use slightly less resources. The problem: Passport. We heavily rely on passport for authorization, so this makes it not viable without major reshuffling or using another package (notably fasitfy-passport)

Problem 2: Speed We duplicate a lot of code. Serialization, contracts and container are all repeated. This results in a lot more connections to mongodb and some heavy packages. It also prevents us from using swc or tsup in #135.

Problem 3: Unified structure There's a lot more going on with nest than I imagined, and having DI, while great, isn't really what is needed- it's performance. API could get hit often with a variety of things, and thus performance should be the next focus.

Overall, nest brings great DX but it suffers with the package ecosystem it has.

This also should help resolve issues with the dashboard being dirt slow.

c43721 commented 2 years ago

OK