dapr / dapr/java-sdk

How to specify type with metadata of pubsub?

Open
#772 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
300
Forks
230
Avg merge
1d 20h
Merged PRs (30d)
4

Description

The CloudEvent spec says we can specify the `type` in the metadata. The SDK allows metadata customization when publishing an event as below
```java
Map metadata = new HashMap<>();
metadata.put("type", "com.test.user.created");
Mono result = client.publishEvent("pubsub", "inbox", payload, metadata);
result.block(Duration.ofSeconds(2));
```

But the `type` seems always be `com.dapr.event.sent`. I debug into the gRPC code down to protocol buffer`serializeStringMapTo` and I am pretty sure the `type` is correctly written to the sidecar via 50001.

Are there anything wrong here? And can I specify other metadata like `metadata.rawPayload`?

If I do a POST with curl, this works
```
curl -X POST http://myurl... -d {"specversion" : "1.0", "type" : "com.mytest", "source" : "testcloudeventspubsub", "subject" : "Cloud Events Test", "id" : "111111", "time" : "2021-08-02T09:00:00Z", "datacontenttype" : "application/cloudevents+json", "data" : {"orderId": "100"}}
```
So I guess this problem only occurs in gRPC. However, the SDK does not support HTTP for pub/sub, right?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.