Hi All, I have a few questions regarding external database connectivity within an OutSystems application: Performance & Latency :Will there be noticeable server latency when performing CRUD operations on an external database?How efficient is the transaction flow when fetching data from an external database into an OutSystems application? Reliability & Failover:In the event that the external database server goes down, what kind of backup or fallback mechanisms should be implemented to minimize or avoid impact? Are there any recommended best practices for handling such scenarios (e.g., caching, retries, circuit breakers)? Security & Data Privacy: If we need to insert data into an external database from an anonymous/public page, what is the recommended approach to ensure secure implementation?How can we maintain data privacy and protect sensitive information in such use cases? I would appreciate any insights, best practices, or real-world experiences related to these aspects.Thanks in advance!Best Regards,Ajit Kurane.
Hello Ajit.
Performance & Latency:
Performance will be the same, in the sense there will be no difference in OutSystems, and it's more dependent on your query and the database itself.
For latency, there will be no difference, as long as the external database is in the same infrastructure/network as the OutSystems database. If not, then yes, there will be differences that will depend on the network, etc.
Reliability & Failover:
I would say the best practices are the common ones, based on the requirements. If you need to have the App on 24/7 99.99999% uptime, you have to guarantee you have data mirrors, for example. Other measures like cache depend on your data: if you need the most actual data, it may not be appropriated. As for retries, it is something you have to take into account in your own logic (but is commonly a best practice).
Security & Data Privacy:
All the basics apply here. Data from public/anonymous sources should be sanitized to avoid injection and so on, but your code should take this into account as well.
Same thing for security of the data itself. Encryption (if needed), usage of VPS, Private Gatways, etc. to guarantee access only to the authorized applications, security control on the application to guarantee only the authorized people to use/see the data, etc.
There is an OutSystems Security Bootcamp that touch some of those concerns, as well as the Advanced Bootcamp (in the Best Practices section).
But in the end, you have to guarantee your infrastructure (and the external database is part of it) is secure, and that your applications do not allow unauthorized access to the data.
Hope this helps.
Cheers!
Performance depends on network latency, query design, indexing, and database proximity. Use pagination, avoid repeated calls, and cache only where it is safe. For failures, add exception handling, controlled retries, and asynchronous processing for non-critical writes. Anonymous pages should never access the database directly; validate inputs server-side, protect credentials, and add rate limiting or CAPTCHA.