Ah yes, I still wanted to do some more testing. I started to review it last week but then got scared mainly because of performance regarding the huge “tools.ts” file. My worry there right now is that it could have a negative impact on performance as currently always all data of all nodes get loaded on startup (a shortcoming we plan to fix in the future). To speak numbers. Currently that is for all 184 nodes n8n currently has 234 KB. All the data of your one node currently stands at around 173 KB which means that merging it right now would almost double that. So for that reason did I want to do some more research. I hope that makes sense. Very sorry for the delay!
This is a blocking aspect I know. More than 400 tools has this size problem in generated .ts.
Not sure if we can reduce existing .ts file additionally. We have created property names as short as possible (only one letter) and some extra properties (default values) perhaps can be discarded (like countries)
If this helps you, we are currently integrated with Integromat and Zapier, and integrations work this way:
Load groups by external URI call (perhaps this is not required because group.ts is small).
Load tools inside group by external URI call (filtering by group)
Another option could be lazy loading into memory from internet when node UI is opened the first time (probably some lag there) or loading data node on-demand (as you said before).
We load a generated json in our webapp to avoid extra calls to our API.
Thanks a lot is very helpful! We have to look into one of those solutions sooner rather than later. Because the more integrations we create the bigger the “need” because we really want to make sure that n8n stays fast and responsive. I will keep you updated! Have a good night!
I also wanted to update you that we currently try to implement a feature that would only load the parameters of the used nodes. As soon as it is ready we can then also move forward with the uProc node.