Manage configuration data

Developer is in control

A lot of AppStore modules, and probably your own modules too, require configuration to run properly in your application. A simple example is the AppStore SMTP Email module which needs to know how to access your SMTP server otherwise it cannot do what it is supposed to do. In this module and many other modules this is solved by allowing you to store that configuration data in the database and you can adjust these settings while the application runs.

As the data is stored in the database and it requires an administrator or developer to configure the modules it is a manual process that can introduce errors. And when the deployment documentation is not properly maintained it is hard to know what the desired configuration looks like. It becomes hard to deploy or recover an instance and have it up and running with little effort in configuration.

There are many cases but to illustrate my best practice I will use the AppStore module SMTP Email module as an example here. I prefer to use a mail server for the production instance and another one for all other environments. Consider this case: I have a copy of the production data on the acceptance server and I did not know that I had to make certain configuration adjustments. Due to testing the application, emails are sent to users. Real users! So my real production users receive emails from the acceptance server? This must be prevented at all time and separating services or building in mechanisms to prevent such things are an operational necessity.

[Read More]

Validate user input

What options do you have?

Mendix offers various mechanisms to validate data input. This can be triggered by a user when he edits data in a form and clicks the save button. But it can also be a background process, for example a webservice or an import processing large amounts of objects.

Choosing a validation pattern might save you some time today, but as your application grows you might have to refactor a lot over time. Therefore make a good decision on what to use and use it consistently.

[Read More]

Application performance monitoring

Monitor your application performance with Zabbix

Your Mendix application is likely monitored by system monitoring tools to guard its availability and performance. But are you curious how many orders are created in your application? How many calls it makes to your SAP system? How many users are logged in? So are you curious what is going inside your application?

Why not collect and export such (business) data to Zabbix to create a dashboard with graphs showing your application performance?

[Read More]