SQL Transport: do I even need tables for SendOnly endpoint?

I’m implementing a send-only endpoint on SQL Transport in a legacy service. This endpoint will only publish a number of events.

As far as I can tell, there is no need to even create the database table(s) coinciding with the name of the endpoint? When I publish the event, it is written directly to the target “queue” (table).

Is there any reason that I’m missing to still create tables for this endpoint?


You don’t need an input queue for a send-only endpoint but the behavior of publishing depends on the version of SQL Server transport you are using. Prior to introducing native pub/sub (Version 5.0.1), SQL Server transport relied on receiving subscribe and unsubscribe control messages to control where the published events are delivered. In order to do so, it had to have an input queue.

Version 5.0.1 and later use a shared subscription table to control pub/sub. A subscribing endpoint just adds and entry to that table and a publisher uses it to determine who’s subscribed. That means that you can publish events from a send-only endpoint in 5.0.1 and later.

Thanks for clarifying Szymon. I’m using native pub/sub, so that explains why I saw no activity on the queue :slight_smile: