-
Notifications
You must be signed in to change notification settings - Fork 224
Open
Description
Context
Using the Outbox API:
public Response createWithOutbox(OrderRequest request) {
Log.info("Receiving request for creating an Order: " + request);
String uuid = UUID.randomUUID().toString();
Order order = new Order(uuid,
request.items().stream().map(i -> new Order.OrderItem(i.id(), i.name(), i.price())).toList());
/* outbox.yaml: metadata.name */
ExecuteStateTransactionRequest transactionRequest = new ExecuteStateTransactionRequest("postgres-outbox");
List<TransactionalStateOperation<?>> ops = new ArrayList<>();
Map<String, String> metadata = new HashMap<>();
metadata.put("datacontenttype", "application/json");
State<Order> state = new State<>(order.id(), order, null, metadata, new StateOptions(Consistency.STRONG, Concurrency.FIRST_WRITE));
TransactionalStateOperation<Order> upsertOps = new TransactionalStateOperation<>(
TransactionalStateOperation.OperationType.UPSERT, state);
ops.add(upsertOps);
transactionRequest.setOperations(ops);
dapr.executeStateTransaction(transactionRequest).block();
Log.info("Event (order.created) sent to 'rabbitmq' and order saved to the database using Outbox pattern");
return Response
.ok(new OrderResponse(order.id(), order.status(), order.items().stream()
.map(item -> new OrderRequest.OrderItemRequest(item.id(), item.name(), item.price())).toList()))
.build();
}I am facing a wrong behavior, which is not the same as documented here https://docs.dapr.io/developing-applications/building-blocks/pubsub/pubsub-cloudevents/#dapr-generated-cloudevents-example
Actual behavior
{"data":"{\"id\":\"dd1f1122-cb3a-4dc4-8ab6-e16ff6599a61\",\"status\":\"RECEIVED\",\"items\":[{\"id\":1,\"name\":\"Quarkus Stickers\",\"price\":19.99}]}","datacontenttype":"text/plain","id":"outbox-06af412d-e21b-4151-8f25-9c6c7273a95c","pubsubname":"rabbitmq","source":"orders-api","specversion":"1.0","time":"2025-10-22T18:40:26Z","topic":"order.created","traceid":"00-dc2464c8d9432109a3d1f13469aa739a-ed59c9a3d2829220-01","traceparent":"","tracestate":"","type":"com.dapr.event.sent"}Expected behavior
{"data": { "id": "dd1f1122-cb3a-4dc4-8ab6-e16ff6599a61","status":"RECEIVED","items":[{"id":1,"name":"Quarkus Stickers","price":19.99}]}","datacontenttype":"application/json","id":"outbox-06af412d-e21b-4151-8f25-9c6c7273a95c","pubsubname":"rabbitmq","source":"orders-api","specversion":"1.0","time":"2025-10-22T18:40:26Z","topic":"order.created","traceid":"00-dc2464c8d9432109a3d1f13469aa739a-ed59c9a3d2829220-01","traceparent":"","tracestate":"","type":"com.dapr.event.sent"}The data field is coming as string not a object, I tried to use cloudevent.datacontentype but without success too.
Metadata
Metadata
Assignees
Labels
No labels