When You Have Customers You’re Gonna Need It! Enterprise (App) Edition

Terris Linenbach
1 min readJan 7, 2022
  1. Stand-alone data validations. For example, if using a RDBMS, implement checks beyond NOT-NULL and foreign key constraints that can be invoked either incrementally or via batch. Is your data wonky? Who knows for sure unless you run something like this after your integration tests.
  2. Roles and capabilities rules engines, probably implemented separately for front and back ends. I’ve tried to unify front and back using Node but I decided that it’s not worth it. Maybe you can do better!
  3. Asynchronous APIs. Request-response is for toys that don’t implement server-side retry. Enforce a 5 second transaction limit at the router layer to discourage cheating. Pick or invent a convention (eg web sockets) and stick with it for everything.
  4. Message lookup for internationalization. For logging, errors, and messages that are sent from the server to the frontend.
  5. Data modification audit trail showing who did what when. The same mechanism should work for one-off “data fixes.”
  6. Automated production-identical environment for integration testing of every feature. Yes, every feature. Of course it’s expensive. So is losing developers to natural attrition and adding new team members who will over the long term break features unpredictably, regardless of experience level and code reviews.

Be sure to automation test the audit trail!

--

--