How can I reduce the complexity of my app?

This article provides a overview of the adjustments that can be made to your Knack apps in order to enhance and effectively manage their performance.

As Knack builders, it is important to consider the following questions in order to simplify your app and reduce complexity:

  • Equation and text formula fields: Are they all necessary; are there other ways to reference the information? Can some be combined?

  • Formula fields: Can any of the formula fields such as sums, counts, etc. be set up via report views?

  • Connected records: Where can pages and views be used to display connected information? Rather than using formulas, equations, or other fields to pull this information into one table.

  • Pages and Views: Are there extra pages that are unnecessary, or could page rules be used to display different information to different user roles instead of several pages that recycle the same information?

  • Form rules: Are there inserted connected record rules that then trigger a cascade of other field value updates on connected fields that could be removed or simplified?

  • Tables, fields, and connections: Are there extra connections between tables that aren't needed? Fields that are no longer used?

  • Records: Sheer record count typically doesn't drastically bring the app to a crawl, but if they aren't being used, could historical records be exported and removed?

  • Split up your app into two or more apps: Are there multiple standalone workflows or processes happening within a single app? For example, are you using a single app to manage customer orders and job applications? Are multiple departments/teams using the same app?

Tip: Find more information on how rules, equations, formulas, and text formulas can impact your app's performance here in this article.

 

What if I need to improve performance without reducing my app’s complexity?

It’s possible that you can’t reduce the complexity of your app without compromising the business goals that your app was designed to accomplish.

In these situations, isolated resources on an Enterprise plan may be able to help. One of the biggest benefits is eliminating the potential for other apps to directly impact your app's performance.

Isolated resources also provide some of the following benefits:

  • Higher Job Concurrency: Other app jobs can't block your app's jobs.

  • Increased Calculation Limit on Formulas: 10k to 100k.

  • Database Index Optimization: This can provide major performance gains in scenarios that result in many repeated database queries.

Tip: Please don't hesitate to reach out to our sales team with any questions you may have about upgrading to an Enterprise plan or questions about isolated resources. You can do so via this form.

 

Why is this my problem? Can’t you just design Knack better?

If only it was that easy! Yes, this is certainly what you’re paying Knack to do, and we’ve devoted thousands of engineering hours to tackle this exact problem and will continue to do so.

We apply caching, batch processes, indexing, parallel processing, and every other trick we can think of to make things as performant as possible.

Ultimately, we’re facing the fundamental challenges and limitations that come with any database design, and most of our improvement can only come at the margins. Consider those dependent calculations: there’s only so much we can do when we have to wait for one calculation to complete before we can update further calculations that are dependent on it.

These are challenges that professional computer engineers writing custom software from scratch will struggle with. At some point, this gets down to the laws of physics: computer bits are getting switched, and that can only happen so quickly.

Regardless, we are committed to constantly improving performance and will do everything in our power to ensure that this is something you never have to think about.