3 ms·
Congrats. I think retool could be great, and I really wanted to use it for our internal tooling, but we operated in Australia and the lag was just nuts. Latency
by doctor_eval 4y ago
Congrats. I think retool could be great, and I really wanted to use it for our internal tooling, but we operated in Australia and the lag was just nuts. Latency was over 1 second for a page view, compared to ~10ms for a locally hosted UI - it was unusable, and there didn’t seem to be any way to get a local server instance.
Hopefully this is something money can fix :)
the problem was the sum of UI latency to US(?) plus latency of serial API calls to get the data. We could probably have lived with a full rendering time of 100ms or so, but responsiveness requirements don’t scale linearly. So with a few round trips, it quickly became insurmountable.
- dvdhsu 4y agoYes, this is something our infra team is working on right now. As of today, somebody in Australia, with a database hosted in Australia, experiences two round-trips in order to get data (client => our backend => database => our backend => client). We are working on deploying our database connector in far more regions so this won't be a problem. I think ETA is ~next two months? Will check in with team now... An alternative is our self-serve on-premise product: https://retool.com/self-hosted/ https://retool.com/self-hosted/, which you can host in your own EC2. Given this latency issue is our fault, if you want a discount, just reach out to me; I'm david AT. Happy to provide a discount until we go multi-region with our backend.
- snir 4y agoHi all, I'm Snir -- I lead engineering here at Retool. I wanted to follow up on the above. Solving the round trip problem David mentioned above involves multi-region for our entire backend, inclusive of our DB. This is definitely a priority and something we plan on having by EoY.
- doctor_eval 4y agoHi, thanks to both for your answers. I could see that it was a round trip problem, and it’s good to know you’re aware of it. Despite trying really hard, the latency made it unusable. Also IIRC, there was way more than 2 round trips .. I think my UI made a few (GraphQL) API calls and they appeared to be serialised, so it really was in the order of 1-2 seconds for a page to load. This was 18 months ago so both my memory and your implementation might have changed since then. In terms of using retool, unfortunately that particular ship has sailed for me, but I’ll be quite happy to reconsider it in any of my new projects once you have a solution that is a couple of hundred light-milliseconds closer :)
- alistairw 4y agoIn the exact same boat. Love retool and using it a lot for interfaces we want to whip up quickly, but the performance is terrible. We're just copping it at the moment since we don't have the time to invest in any other options!
- dvdhsu 4y agoPerformance is our #2 priority for our engineering team this quarter. We have made some notable gains, but there is much more work to do. Thank you for the feedback and for sticking with us; we are hard at work on it, and expect to deliver more performance wins over the next few months. (If there are tips you want on improving app performance, feel free to reach out to me; we are happy to get an engineer from our side to help debug why things are slow.)
- alistairw 4y agoThanks for the reply! Sounds like your response to the parent — database connectors in other regions — will help resolve this. So we're happy to stick it out for now
- mullwaden 4y agoWe are also having the same issue, even in Europe the round trips add up. Our sales team uses retool as their crm system and for them the slowness is quite painful. We will be self hosting soon, but it is some work so this is unfortunate. Another topic of interest is managing queries. What happens if a database column is renamed for example? Now we manage it though stored queries in our db - this creates some dependencies and there is always a risk that old queries are no longer used or some query has not been updated. A single place to manage and overview all queries would go a long way (maybe this exists, I have only had a small part in the implementation).