What is our primary use case?
Our use case is our service-oriented architecture transformation which started in 2017. It has been a three-year journey. Before that, between 2007 and 2017, we had not conducted a re-architecting of the SOA. In 2017, we had a big initiative for digital transformation at the bank to make ourselves more flexible, more agile, and competitive with all the startups and the financial industry in general, not only in Indonesia but also in other regions.
One of the critical capabilities included the integration area. That is why, in 2017, we re-architected the SOA to have layered architecture that is related closely to microservices. We are testing a new mobile banking channel to use a micro services architecture as well.
The integration use cases for webMethods involve connecting all of the back-end core systems at the bank so that they use the SOA integration server layer. Everything must go through this layer to speak or communicate with the back-end systems, such as the core banking, HR systems, and the treasury system; all the core systems that sit behind the ESB layer of the Integration Server. All the front-end systems like mobile banking, sales management, the CRM, etc., must go through this ESB layer, the integration server, to communicate with the back-end system. That is the prime use case of Integration Server.
Other than that, we successfully launched a new initiative for API about a year ago. We are commoditizing our financial services to not only be consumed by our channels, but by partners such as startups, FinTechs, InsureTechs, and other companies that would like to partner with us and use our financial services APIs.
When it comes to commoditizing for external parties, the partners, the other banks, or financial institutions that are our subsidiaries, they can connect to it and consume our services through the API Gateway products that we are providing to them. That includes sandboxing to test their applications. If they would like to partner with us, they need to register themselves and make an agreement with the bank regarding what sort of packages and fees that will be applied for the cooperation.
It's deployed on-prem. We are a banking institution. In Asia, regulators for the financial industry prohibit us from hosting financial transactions outside the Indonesian region.
Are you using multiple products from this vendor?
We are using multiple products to build the end state of our service-oriented architecture (SOA). This is all orchestrated as a big building house. Those SOAs have many capabilities inside of them on the integration side, such as webMethods Integration Server. There is also webMethods API Gateway and Software AG Apama. (Read my webMethods API Gateway review here.) Those modules inside of Software AG complement the building blocks of SOA.
We also use it to complement other products in the markets outside Software AG, such as Kafka as well as all event processing and streaming. This is in combination with the capabilities (and beyond) of what Software AG stacks can do.
I find the native integrations between Software AG products to be very useful from a plain vanilla standpoint. Though, when we implement native integrations, there needs to be slight customizations to fit them into our core legacy system, and that needs to be integrated with other systems. For plain vanilla capabilities, it is sufficient enough.
The native integrations between Software AG products also have good performance in terms of transactions per second (TPS). These are acceptable in terms of the volume and speediness of a transaction that we can produce as well as being combined with the efficiency of using the hardware, memory, and CPUs.
If you combine the commodity hardware and performance as well as the plain vanilla capabilities of internal products that Software AG has, then there is a good price per value.
It gives you a one-stop service for your integrations area. You can really rely on one vendor, then you don't have to worry about sustainability or support. This is all guaranteed by Software AG as a single stop service from them. Whereas, when you need to combine other vendors, then you need to monitor each of their solutions, sustainability, product roadmaps, etc. Then, this becomes your technology liabilities, which is something that we consider. From the integration, we are selecting a good strategic partnership with one vendor in order to maximize our productivity. Thus, we don't have to worry how we can monitor each respective vendor if we do a best of breed combination of many vendors, just to do an integration.
By selecting Software AG and using multiple products, this saved us about 72 percent, which has definitely given us more agility.
Because we were already accustomed with webMethods Integration Server way before the webMethods API Gateway, they were almost the same. We just converted our knowledge from the prior WSDL into RESTful JSON standard messages. Therefore, the learning curve was very smooth because the environment that the developers use was still the same: My webMethods Console. It uses the IDEs coming from that, saving us a lot of time with the learning curve on new technologies.
How has it helped my organization?
One of the improvements is that everything is currently standardized. Previously, each system had its own connection to the core and back-end systems, a point-to-point connection. It created havoc for governance of the integration itself. There were so many connections without any governance whatsoever as to how the communication happened.;
There is also an improvement on our development side. When we have requests for new business requirements, products, business processes, and integrations with partners, Integration Server has dramatically decreased our development time. That's because we have standardized all the communications to the core system in one place.
In addition, we have improved availability of the channel itself.
It definitely gives us flexibility. The first stage, with these products, is the learning and customization. Once these are underway and things run, the performance is meeting our expectations. And when new requirements arise it becomes easier and development speeds up. For each integration service, the development cycle has come down from seven days to three days, maximum. And that's for the complex integrations. We have cut the development cycle by almost 50 percent.
Modifying and redeploying integrations is very easy. It gives us a good, stable, comprehensive, end-to-end development cycle, from development to deployment. It gives us a set of tools for checking the consistency and integrity of the code, which is something we didn't have with previous solutions. When deploying to the production server, it also does validation checking, whether certain libraries are missing, for example. It helps us do consistency checks. Because of that, we have cut down the system integration testing significantly. The user acceptance testing has also been reduced significantly. The reduction in testing time is almost 50 percent, compared to our previous solution. We used to test for five days and now it's just two days of testing for each of the services.
The vendor’s full support for the solution’s adapters and connectors has helped with uptime and availability. We are close to 24/7. And the number of transactions per second, previously, was around 600 to 700. Now, it has almost doubled. We are reaching more than 1,000 TPS. We have more than 2 million transactions. It has given us that type of scalability.
The solution has helped us contribute more to the business, to the expansion of the products and the volume of transactions.
What is most valuable?
There are three features of Integration Server that are the most valuable. One is the webMethods Designer. That helps our developers develop on their own. It's very intuitive for design. It helps our developers to speed the development of services for the integrations.
The second feature is the reliability. Mandiri Bank is the largest bank in Indonesia. That translates it into a humongous volume of transactions that flow down from the channels and go through the Integration Server, and then to the core banking itself. The components of Integration Server need to have 99.999 availability. It needs to be reliable all the time, available, and to be a scalable platform.
The third of the highlights of the features of Integration Server is the small footprint for infrastructure. It can run on any commodity hardware, unlike other solutions that need to run on specific hardware. It gives us the freedom to scale the platforms and create the greatest possible agility for the organization to expand, based on the demands. The other side effect of that is the additional advantage of transforming the architecture that we currently use into more of a microservices base. It gives us more flexibility and agility, going forward.
What needs improvement?
We would like to achieve a multi-site, soft data center. Multi-site meaning that we would like to have more than two Active-Active data centers because Indonesia is a big region with three time zones. We would like to have many data centers serve us across the islands to support the massive number of transactions. We need to have a good amount of availability. Hence, we would like to have a multi-site data center. To support that, the solution needs to be capable of Active-Active implementations, an Active-Active integration server. We would like to get to the point where transactions are not only coming into one data center but, simultaneously, could be redirected to several other data center sites. Integration Server needs the capabilities to help us to achieve that goal.
Also, the solution has big instances when deployed under microservices or in a containerized platform. They need to improve that so that it is competitive with other integration solutions, like Redis and Kafka. Deployments under microservices with those solutions are much more lightweight, in the size of the runtime itself, compared with Software AG. They need to improve it to be scalable enough and lightweight enough to run on the microservices/containerized platform.
We are paying them a lot so we have access to their product development engineers. We are waiting for them to revamp the microservices areas. We are waiting for the new version of that. They have come back to us with something that is much more lightweight, but to us, it has still not reached the lightweight level that we want.
For how long have I used the solution?
We have several products from Software AG. The product is the SOA webMethods Enterprise Service Bus. We have been using that since 2007. The second, and one of the largest, is the API Gateway. Other products include Apama Complex Event Processing and Event Stream Processing engine. Those are the three main products we are currently using as part of the service oriented architecture building-blocks at Bank Mandiri.
What do I think about the stability of the solution?
Given that we have been using it all these years, you can imagine the stability of the system.
We experienced major issues at the beginning of the implementation when the product was still kind of new. But over the years they improved a lot.
They keep producing new versions at a rate that we cannot keep up with. That is a problem for us because they have a very small set of supported versions. That is a downside of their products. Old versions are supported for a very limited time. They keep telling us, "You need to upgrade." But we do an upgrade and they introduce a new version and the one we updated to is already obsolete. Their life cycle is very short.
What do I think about the scalability of the solution?
It can run on commodity hardware, so it is scalable using commodity hardware, like Intel processors of any brand, as long they run on the Linux operating system. They can do a clusterized environment and scale easily when transaction volume is bigger than we expect. It can actually scale on demand, and it's easy to set up by joining a new cluster into an existing cluster. It performs well in this case.
We have 60,000 to 70,000 employees at the bank. About 10,000 people are using the services we create with the solution. They are mostly in the transaction back office and they monitor the day-to-day transactions from the channels. They monitor our mobile banking, trade, finance, and treasury transactions, as well as wealth management, corporate payments, and cash management. It's typically the wholesale, retail, and the micro-banking staff who heavily use this integration. For the back office, the upper-level user is a department head, while the junior level is staff that does the monitoring, day in and day out.
How are customer service and technical support?
When we have issues that we have not encountered, we have access to their support teams. They need to have support which is close to the Asian region. Because of the time zones there are limitations on how they respond to our support.
They do provide us with local partners that help us more quickly. There are several severity levels of support. For level-one they provide us with good partners in Indonesia.
How was the initial setup?
Since we do the transformations, we do the initial setup from the bare metal server up to the setting up of the Integration Server. We can pretty much do that ourselves, with their guides. The first time, we needed to be guided by their engineers. The setup is fairly easy, but for optimal speed and performance, we definitely reach out to their support to evaluate the configurations that we have deployed.
When we installed the new version it took two or three days, depending on how many nodes we configured. Now, it takes a maximum of one day to establish a setup for normal configurations. For the complex ones, that have many nodes or Active-Active sites, it can take three or four days.
We have one engineer for Software AG, another on the network team, and another on the server team.
For the monitoring of day-to-day operations, we have support from our internal developers. We have deployed six or seven people because this is a huge implementation of Integration Server. They cover three shifts so that we have 24/7 monitoring, using the management console. We accompany that with third-party tools that help us to monitor the performance.
What other advice do I have?
We have been using the solution's adapters and connectors for our new architecture on the integration inside of Integration Server, but with help. The product is a plain vanilla platform. You can do pretty much everything, but to exploit its capabilities, you need to use their consulting to help develop and utilize them. Those capabilities are something that our internal developer was not familiar with, so we needed to engage with the Software AG engineers to help us build those adapters. The built-in adapters do not suffice because they need customization to be implemented. Each organization has its own business processes and logic that differ from one to the next. It is good as a plain vanilla, but if you want to customize it further and exploit the capabilities, you need to have their engineers working closely with you to implement and utilize all of the capabilities.
Our back-end is a legacy system that uses a different language, so we needed to customize it. The solution helped reduce the amount of work because at least the features were already there, but it needed the customization of the engineers from Software AG in conjunction with our internal developers as the experts in our core system. Combine forces and you create your own adapters.
Integration Server provides application integration, data integration, business-to-business communications, APIs, and microservices. Regarding the data adapters, we are not using their products for data integrations. The data integration space has come into the data warehouse area, and we are using other tools to do data integration. But for the transaction APIs, business processes, we are using built-in products from webMethods.
That range of features comes back to the use cases that apply to the business innovations that a business would like to implement, such as real-time transactions, asynchronous transactions, fire-and-forget. I'm sure the transactions will be successfully processed by our core systems, and that is the main goal. The other features go towards how we can enrich things, but that is a second priority.
Which deployment model are you using for this solution?