Hacker News new | ask | show | jobs
by intheleantime 981 days ago
Hi, thanks for the question.

It is a simple PHP application using Mysql as the database backend. We are using a domain driven design architecture across the application and decided to skip the slow ORMs in favor of a repository layer with hand written sql.

We are framework agnostic to not be locked into any flow but you will see classes from Symfony and Laravel. The goal has always been to make Leantime as lean as possible to allow hosting it on any shared host out there. That means we don't use any exotic extensions or OS features. You can run it safely on the smallest Godaddy instance if you wanted to.

We recently introduced htmx into the stack to offload some of the rendering back to the server and we love it.

PHP itself is really not a bottle neck anymore especially since PHP 8.0

We haven't had a chance to run a lot of large scale load tests yet so take the following with a grain of salt but a direct Task hit currently takes about 2.08 sec to load on our production site. (that includes javascript processing time as it loads in a modal)

I know we have instances with thousands of tasks and users in the wild and generally performance is not an issue we get reports on on our github repo.

2 comments

2 seconds is pretty slow, especially for a single item lookup which is about as good as it gets for database lookups etc.

Where is that time spent?

That is the entire cycle from browser, to server and back + js execution.

As mentioned in a comment below php execution including db call is: P95 is 120.9ms P99 is 634.11ms

Which means the rest is DNS lookups and js execution.

PS I forgot to mention that we have Sentry profiling. Full Application load (php side) P95 is 120.9ms and P99 is 634.11ms