Question

Our business domain is complex. Currently, our business is written using ASP.NET WEB API HTTP services. So, applications including web, mobile and desktop are talking with these HTTP apis. Now, one of our Manager informed us that the big enterprise are not using any programming language/framework to write there business logic/rules, they are using Enterprise Service Bus (ESB) middleware and Business Process Management tools to write all of there business rules and business logic. We have Software AG WebMethods and BPM. These tools are using designer to write all the business logic and rules without writing a single line of code.

My question is that do big enterprise are using middleware/ESB/BPM to write there complex business rules and business logic and not using any programing language? How much does it makes sense to convert everything from a programing language to a middleware designer?

Was it helpful?

Solution

In fact, ESB and Process Designers are being used in enterprises but not for everything, and using ESB does not mean that you may no longer need to write codes.

When we talk about exposing service, the biggest questions that appear are:

  • What is the scope of that service ( Business logic details )
  • What you have currently ( available APIs and services )
  • What you are going to deliver for how many users ( Load estimation )

The above questions are critical for choosing the technology and an approach for the development of a solution.

ESB, BPMS, and such tools are good, they provide flexibility for implementing some integrations by their workflow engine and their built-in features like mediation, QoS, and so forth. But they cannot cover all of your requirements especially when you talk about complex businesses, somewhere you should implement your business logic. You can write 'em inside the processes by supported languages by your business process tools ( i.e: Camunda supports javascript ) or you need to integrate with your microservices/applications through HTTP APIs or Message Brokers. But for some basic processes like condition, sending emails, and executing queries, you can use the built-in connectors/processors of ESB/BPMS. But these tools are not "Fast" and "Light-weight" and if you are going to serve requests to a huge number of clients at the same time, you might provide high-spec resource clusters to handle these loads.

On the other hand, you could use microservices architecture to provide this capability to be agile enough and exactly choose the proper solution for your services. you might consider using some out of the box ready platforms for one of your services and implementing some others by GoLang or NodeJs and also your other services by .NET or Java. You can feel free to minimize the development cost and time and maximize flexibility and efficiency.

If you want to learn more about the Pros and Cons of using or not using ESB Tools. Read the following article :

What do you really need within your solution: ESB or Microservices?

Update: Check WSO2 Tutorial Videos to find a better understanding of how ESB Tools provides functionalities. But we cannot escape from writing codes :-)

OTHER TIPS

Short answer is yes. Many large companies do use middleware solutions to handle business logic. Often the ESB or BPM tool will work in conjunction with a business rule management system to make the rules visible and changeable for business folks, rather than creating dependencies on coders making every busness rule change. This is essentially the model that companies like Pega sell, or can be configured into Mule.

As @Soroosh Khodami points out, there is usually some other coding going on, but it's not unusual to try to segregate business rules from code.

Licensed under: CC-BY-SA with attribution
scroll top