Details
-
New Feature
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
Description
Apache APISIX
Apache APISIX is a dynamic, real-time, high-performance API gateway, based on the Nginx library and etcd.
APISIX provides rich traffic management features such as load balancing, dynamic upstream, canary release, circuit breaking, authentication, observability, and more.
You can use Apache APISIX to handle traditional north-south traffic, as well as east-west traffic between services. It can also be used as a k8s ingress controller.
- Background*
Pulsar (https://pulsar.apache.org) is a cloud-native, distributed messaging and streaming platform.
We hope we can produce the access log to Pulsar, like what we have done with Kafka.
Currently, there is not a Lua client for Pulsar. So we need to write our client first.
Task
1. write a lua-resty-pulsar library which works as a producer. Docs:
https://pulsar.apache.org/docs/en/concepts-clients/
https://pulsar.apache.org/docs/en/develop-binary-protocol/
(Note: use websocket or kafka over pulsar is not an option)
2. write a plugin in Apache APISIX, like: https://github.com/apache/apisix/blob/master/apisix/plugins/rocketmq.lua
Relevant Skills
1. Understand Pulsar
2. Have good skills at C & Lua
Targets files
1. https://github.com/apache/apisix/blob/master/apisix/plugins/pulsar.lua
Mentor
Zexuan Luo, PMC of Apache APISIX