Publishers are API clients that send (publish) messages to topics.
Subscribers are API clients that subscribe to topics of interest and read (receive) from their message queues messages that were previously sent by publishers.
Collectively, publishers and subscribers are known as endpoints.
It is possible for one endpoint to be both a publisher and subscriber.
Endpoints publish, subscribe to, and read their messages independently, without interfering with each other's work.
Subscribers can be automatically notified of new messages available or they can pull their messages periodically.
Applications in other technologies, such as JavaScript or Java, typically become endpoints through the usage of REST or APIs based on Python services.
REST and WebSockets endpoints have Basic Auth credentials that they log in to Zato with.
Each endpoint has pattern-based permissions that let it publish or receive messages from topics and queues.
Messages that REST and WebSocket endpoints always use JSON. Python and File transfer can use any data format.
Messages that are published or received can be enriched or transformed in arbitrary ways, e.g. from one data format to another.
Because REST and WebSocket endpoints use standard Basic Auth and JSON, rather than a custom protocol, applications of any kind can conveniently become endpoints in the publish/subscribe architecture without a need for additional custom protocol-specific libraries or packages.