On-Premise: All server components (Apache, WildFly, MySQL) are running on the customer's own hardware/servers within their own data center or office ("in-premise").
Web Access: Web users access the Angular application, which is served as static files by the Apache web server. The Angular application, running in the user's browser, then makes API calls.
Mobile Access: iOS users interact with the SwiftUI app, which directly makes API calls.
Shared Backend: Both the web application (running in the browser) and the iOS mobile app communicate with the same Java REST API running on the WildFly application server.
Database Interaction: The Java API uses JPA (like Hibernate or EclipseLink) to interact with the MySQL database, which stores all the application data.
Potential Bottlenecks: This setup likely has limitations regarding scalability (WildFly in standalone mode, single database instance) and reliability (single points of failure for each component), which is why the customer wants to move to GCP and re-architect for scale and high availability.