Original PIP : https://github.com/apache/pulsar/issues/13628

Pasted bellow for quoting convenience.

—— 

## Motivation

In some case or for better observability. We can support Pulsar event 
notification mechanism, that can let user subscribe this system topic to 
receive some **"we need notice to user"** event.

## Goal

Enable users to receive Pulsar system event.

## API Changes

1. Add config ``pulsarSystemEventEnabled``

```java
pulsarSystemEventEnabled=false
```
2. Add ``SystemEventMessageBuilder``
```java


public interface SystemEventMessageBuilder {

  SystemEventMessageBuilder eventType(SystemEvent event);

  SystemEventMessageBuilder properties(Map<String,Object> properties);

  SystemEventMessageBuilder addProperty(String key, Object value);

  SystemEventMessage build();

}

```
3. Add ``SystemEventService``

```java

public interface SystemEventService {

  void init();

  CompletableFuture<MessageId> trigger(SystemEventMessage message);

  void close();
}

```

## Implementation

This PIP just is a simple version, it's purpose is to discuss what event we 
need to trigger? how to trigger? and what is the event message structure.

I think we need to trigger some event as bellow:

- [ ] Client connected
- [ ] Client disconnected
- [ ] Consumer subscribe
- [ ] Consumer unsubscribe
- [ ] Producer publish
- [ ] Message delivered
- [ ] Message acked

These are far from enough, and we need to continue to make supplements here.
Please fell free to give me more advice for this PIP.

## Reject Alternatives

none.

Thanks,
Mattisonchao

Reply via email to