Skip to main content

FAQ

Do my clients need a broker client library?​

No: an HTTP client is enough to publish, curl -N or a browser's EventSource to consume. The events are CloudEvents, so the consumers that do read the broker directly (a Kafka consumer, a JMS application) read the same events.

Is an event delivered exactly once?​

No broker behind HTTP can promise that. at-most-once (the default) never delivers an event twice and may lose what a client did not get; at-least-once never loses what was not handed over and may deliver it twice. Give your events stable ids (the CloudEvents id): consumers can drop what they saw. On Artemis, duplicate_detection drops an event published twice.

What happens when a broker goes away?​

Its connection becomes unavailable on each node: the routes answer 503 with a Retry-After, the open streams end, an alert is sent once. The client tries again in the background and the connection comes back by itself; the clients coming back resume where they stopped (server-sent events, groups).

Can a caller read any topic?​

Not unless the route says so. By default a caller can only shape its own response; the topic is the route's. With allowed_overrides: ["topic"], allowed_topics restricts the topics to glob patterns. The route's own security applies first.

Does it work in a cluster?​

Yes: every node has its own clients, and serves the calls that reach it. Webhooks need a Redis the nodes share, to be delivered by one node at a time: see Running in a cluster.

Which Otoroshi version?​

Otoroshi 18 and later, on Java 17 and later.

Where are the release notes?​

On the releases page. What is planned and done is in the repository's ROADMAP.md.