What is our primary use case?
I used JBoss ESB for banking API and banking software. We created our own modules since banking APIs and banking applications require extensive security measures. Since banks handle sensitive financial data, the JBoss setup must be rock solid. JBoss ESB provides security parameters and enables HTTPS and TLS for the channels which can be disabled if needed.
JBoss ESB provides role-based access control (RBAC) and includes an admin console that can be used with CLI. I used Active Directory and LDAP, for which JBoss ESB has great support. JBoss ESB internally provides JAAS (Java Authentication and Authorization Service). It can easily provide security and we can sanitize logs. Without log sanitization, we cannot prevent data leaks such as CVV logs or PAN. When putting logs over a console, sometimes sensitive information is leaked through loggers in our code. We can sanitize the log without changing the code using JBoss ESB admin panels and CLI.
What is most valuable?
The most valuable feature is that JBoss ESB is maintained by Red Hat, providing long-term support and security patches every six months. It is tested and certified for enterprise service. Since I'm creating websites and portals completely on Jakarta EE for enterprise applications, this certification is crucial. JBoss ESB has excellent support, and troubleshooting is available 24/7 through Red Hat. It provides support for servlets, JSP for web applications, and distributed transactions.
For banking APIs handling asynchronous calls, it provides GMS messaging service. JBoss ESB also has strong support for JAX-RS, REST API, dependency injection through CDI, and bean validation.
What needs improvement?
JBoss ESB should focus on startup and performance as EAP is heavier than lightweight Java frameworks, which impacts microservices and cloud environments. Improvements should include faster start times and reduced memory footprints. Better cold-start performance in containers should be emphasized.
Cloud-native features must be enhanced since many enterprises are shifting to Kubernetes and OpenShift, making EAP more cloud-friendly. This could include providing smaller container images, native auto-scaling support, and improved integration with cloud configuration services. Enhancing the developer experience is crucial; while the current configuration is powerful, it can be complex for newcomers. As an experienced user, I navigate it easily, but newcomers struggle due to heavy reliance on XML configuration. Transitioning to a JSON-based configuration or YAML format would be beneficial, and simplifications in clustering setup for local testing would greatly assist users.
For how long have I used the solution?
I have been working with Red Hat and JBoss ESB for more than six years. During my time at TCS, I worked with JBoss EAP 7 for banking API and banking applications.
What was my experience with deployment of the solution?
The initial setup and deployment was relatively straightforward, although I faced a few challenges. When working on Java 8 and using EAP version 7, I downloaded it from the Red Hat customer portal. After that, I set up the environments for JBoss ESB, unzipped the version, and configured the home variables along with its path in the bin.
I encountered some issues when creating the management user, which is required in JBoss ESB. However, after reading the documentation, I easily resolved it, creating one and later working with JBoss ESB standalone. Overall, it is simpler and does not present much complexity, even for newcomers in IT.
What do I think about the stability of the solution?
JBoss ESB performs exceptionally well in terms of stability and reliability. The reliability features include session replication, clustering, and failover, along with transaction recovery, which offers robust built-in recovery for incomplete transactions even post-crash or restart. Clustering failover automatically transfers control to another node in the cluster if one JBoss ESB node fails.
Session replication ensures user data isn't lost during server failures as web sessions are stored on multiple nodes. In terms of stability, compliance with Jakarta and Java EE standards using standardized APIs reduces complexity issues. The long-term support provided alongside Red Hat's memory management and tested configurations are key aspects. Most importantly, controlled version updates are applied on a schedule, helping avoid sudden disruptions, especially when code is in production and not publicly updated automatically.
What do I think about the scalability of the solution?
I implemented JBoss ESB's clustering feature for our banking website and APIs where high availability was required. Clustering JBoss ESB means multiple application server instances work together as one logical server. I added more servers to handle loads to provide good latency and throughput. They provide excellent load balancing through Apache HTTP server plus mod cluster, recommended by Red Hat.
The dynamic node discovery feature eliminates the need to maintain manual lists of nodes. They provide automatic lists using dynamic node discovery, which intelligently provides load distribution based on node health. We can replicate sessions, distribute modes, and ensure failure readiness. With more than five microservices, JBoss ESB provides good throughput and failure-over readiness.
How are customer service and support?
The technical support and customer service for JBoss ESB is primarily focused on security fixes and patches. When deploying code, it should contain dependencies considered as common vulnerabilities and exposures patches. I experienced issues with existing vulnerabilities in log4j, which was highly critical. I raised a ticket and received a call from Red Hat, who provided documentation on resolving the vulnerabilities.
The Red Hat Security Advisory (RHSA) team checked my EAP version to determine if CVE affected my installation. They introduced me to OpenSCAP, a security scanning tool for JBoss ESB vulnerabilities, and provided guidance through server.log files to resolve these issues. Based on my experience with the technical support, I rate them 10 out of 10.
How would you rate customer service and support?
How was the initial setup?
I was involved in the initial setup and deployment of JBoss ESB.
What other advice do I have?
I am currently using JBoss ESB as an end user. I chose JBoss ESB because it is excellent for open source Java, Java EE, and Jakarta applications. Initially developed by JBoss, it was later acquired by Red Hat. I have used WildFly up to UAT and dev server, but the paid version is JBoss ESB.
The most important aspect I appreciate is that it provides implicit and explicit dependencies, allowing developers to focus on business logic rather than dependency management. My review rating for JBoss ESB is 10 out of 10.
Which deployment model are you using for this solution?
Hybrid Cloud
If public cloud, private cloud, or hybrid cloud, which cloud provider do you use?