Java as a programming language has reached such a maturity on the marketplace that it can now in its latest versions be deployed to meet with the high business-critical business application requirements. This typically means the applications have not only been properly unit tested for functionality and regression but also for entire workflows with system tests in the supported operating system and hardware deployment environments.
Deployment on multi-core CPU environments typically require the Java applications to be written with concurrency and as the Java roadmap has been adding support for more functional programming primitives it is now easier than ever to develop and execute applications which make the most of the underlying hardware processing power.
Any single JVM based application typically suffers from a single point of failure. Developing a multi-tier architecture where each layer has redundancy is part of today’s business-critical application deployment requirements. This allows continuous operation even in the case of any individual node being shut down for maintenance or due to a problem the software cannot automatically recover from. Such requirements can be met with careful design of the deployment architecture with sufficient redundancy in those components which need regular maintenance or suffer from occasional downtime.
Java applications can be developed to provide scalability for increasing data volumes or increasing numbers of users. The deployment architectures can make use of brokers such as message queues which allows the producer of the information to remain unaware of the eventual consumer(s) of the information. This in turn allows dynamic addition of multiple consumers if, for example, more users become interested in the service.