rodrigoserracoelho / capi-gateway

Light API Gateway implemented with Apache Camel
Apache License 2.0
47 stars 18 forks source link

Dose API Gateway a subset of Apache Camel? #9

Closed MingningShao closed 2 years ago

MingningShao commented 3 years ago

Hi,

As an API Gateway developer, I have to add more and more protocols(RPC,SOAP,MQTT,etc.)extensions to our Gateway, since more and more requirements coming from different departments or products.

One day I was shocked, The API Gateway is becoming an Integration Platform, like Apache Camel.

Camel can also provide route functions with multi protocols and EIP.

Well, that confused me a lot.

1.What's the different between a API Gateway and Camel when multi protocols required?

2.Should we use Camel to do those multi protocols?

3.Other features, like OpenAPI belongs to Gateway or Camel?

The Gateway look like a subset of Camel.

That's interesting when I found Camel like a mixer.

Thanks!

rodrigoserracoelho commented 3 years ago

Hello, thanks for your message. First, please keep in mind that the CAPI Camel API Gateway was created to address very specific needs. We are using just a small amount of features of what Camel has to offer. Check our presentation at Apache Con: https://www.youtube.com/watch?v=sEKCI8IBCfc to know in details how are we using Apache Camel.

To answer your questions: 1 - An API Gateway (like CAPI), acts as a reverse proxy to allow all client applications, to call just a single endpoint for multiple services. These services are created dynamically, using provided API's (the API Manager). It’s common for an API gateway to handle tasks that are common to the API services context, such as routing, user authentication, throttling limiting, policies, error handling, fail over and statistics. So here we focus on exposing REST API's (Open API specification) and support oauth2, traffic management and other technologies not related with Apache Camel. 2 - You should indeed use Apache Camel. Camel is THE reference implementation for enterprise integration patterns (with support of hundreds of plugins/protocols). 3 - Open API specification is supported by our CAPI Gateway. It's a specification, it doesn't belong to Camel or even to any API Gateway Technology.

CAPI Gateway is not a subset of Apache Camel. We did choose Camel, because we love the features offered and the vibrant community around.

Let me know if you have further questions. Thanks. Best, Rodrigo

MingningShao commented 3 years ago

Hi, Rodrigo We want use Camel to solve the multi protocols requirements, actually it is an integration work. But, if we add more camel components to our API Gateway, the API Gateway will out of our expectations, light weight, single responsibility, high performance, etc.. And, if we just use camel to develop an Integration Platform, the new product also needs some auth, open API, routes. Well, it looks like a Gateway again. That's what boring me a lot, independent or inside the original API Gateway. So, i want to know your considerations during CAPI work. Thanks!