Thank you for your contribution to the Apache Pulsar project. This document will guide you to understand and implement Pulsar's extensible interface.
Apache Pulsar is a distributed messaging and streaming platform. You can view detailed information here. Pulsar allows users to customize plugins and integrate them into Pulsar to meet customized needs by exposing interfaces and configurations. Many of these plugins are similar and can be reused. This project aims to collect and organize the implementation of various plugins, reduce the development cost caused by repeated implementations in the community, and lower the threshold for using Pulsar.
List the core interfaces in Pulsar that can be implemented by contributors.
org.apache.pulsar.client.api.MessageListenerExecutor.javaorg.apache.pulsar.broker.authorization.AuthorizationProviderorg.apache.pulsar.client.api.AuthenticationDataProviderorg.apache.pulsar.functions.auth.FunctionAuthProviderorg.apache.pulsar.functions.auth.KubernetesFunctionAuthProviderorg.apache.pulsar.functions.secretsprovider.SecretsProviderorg.apache.pulsar.transaction.coordinator.TransactionMetadataStoreProviderorg.apache.pulsar.broker.transaction.buffer.TransactionBufferProviderorg.apache.pulsar.broker.transaction.pendingack.TransactionPendingAckStoreProviderorg.apache.pulsar.broker.loadbalance.ModularLoadManagerorg.apache.pulsar.common.naming.TopicBundleAssignmentStrategyorg.apache.pulsar.broker.loadbalance.LoadSheddingStrategyorg.apache.pulsar.broker.loadbalance.ModularLoadManagerStrategyorg.apache.pulsar.broker.loadbalance.extensions.filter.BrokerFilterorg.apache.pulsar.client.api.ProducerInterceptororg.apache.pulsar.client.api.ConsumerInterceptororg.apache.pulsar.client.api.ReaderInterceptororg.apache.pulsar.broker.intercept.BrokerInterceptororg.apache.pulsar.broker.service.TopicEventsListenerorg.apache.pulsar.client.api.ConsumerEventListenerorg.apache.pulsar.client.impl.transaction.TransactionBufferHandlerorg.apache.pulsar.io.core.Sinkorg.apache.pulsar.io.core.Sourceorg.apache.pulsar.functions.api.Functionorg.apache.pulsar.broker.service.schema.SchemaStorageFactoryorg.apache.pulsar.packages.management.core.PackagesStorageProviderorg.apache.bookkeeper.mledger.ManagedLedgerorg.apache.pulsar.broker.stats.prometheus.PrometheusRawMetricsProviderProvide implementation guide for each type of interfaces.
org.apache.pulsar.client.api.MessageListenerExecutor.javaPrometheusRawMetricsProvider rawMetricsProvider = stream -> stream.write("test_metrics{label1=\"xyz\"} 10 \n");