Database Connectivity and Transaction Resilience
Q: How does digiRunner handle database connection failures? Will transactions be interrupted?
(Keywords: Database Failover, HA, High Availability, In-Memory Caching, Read-Only Mode, Resilience)
A: digiRunner is designed with built-in resilience mechanisms to handle various database connectivity issues, ranging from momentary network jitters to extended outages. The impact depends on the duration of the issue and your specific deployment architecture.
1. Short-Term Instability (Network Jitter)
Impact: Minimal to none.
Mechanism: digiRunner utilizes an in-memory data caching mechanism. During brief periods of instability (e.g., a few seconds), API services can continue to serve requests by reading from the cache, ensuring non-blocking operation.
Limitation: If the cache expires and needs to be refreshed while the database is unreachable, the system will eventually fail to retrieve updated data, which may impact service continuity.
2. Long-Term Database Outage
Impact: Standard deployments may eventually face service interruptions once cached data expires.
Solution: For mission-critical systems requiring zero downtime during extended database failures, the Dual-Centered In-Memory Gateway Architecture is required.
Benefit: This architecture eliminates single points of failure, allowing the gateway to continue providing API services using in-memory data even if the primary database is inoperative.
Note: This is a feature of the Enterprise Edition and typically requires professional services for configuration.
3. Database in Read-Only Mode
API Services: Running services that primarily perform read operations (or have data already cached) will generally not be immediately affected.
Admin Console (AC): You will likely be unable to log in or perform management tasks.
Reason: The Admin Console requires write access for operations such as audit logging, user management, API registration, and system configuration changes. If the database blocks write operations, these tasks will fail.
Last updated
Was this helpful?
