High-level overview

The three-layer architecture

In the classical three-layer architecture of fronted, middleware and backend processes, Zato is best suited at the middle or far backend of your IT infrastructure.

Areas where Zato shines are business integration - such as implementing an Enterprise Service Bus (ESB), and core services - billing, customer management, purchase processing, supporting marketing campaigns, core banking and many similar activities that form a backbone of an enterprise.

Zato can serve as either an ESB or an application server and a successful implementation of a Zato environment allows for:

  • aiding in introducing and optimizing complex business processes
  • creating software solutions in less time
  • connecting dispersed applications
  • enabling the communication between systems with incompatible interfaces
  • unifying access methods to independent applications
  • introducing a common security model across different parts of the IT infrastructure

Zato environments are composed of clusters, each of which is a set of servers and supporting applications running in an HA configuration.

Message processing

At its very core, the Zato’s production ready processing capabilities allow you to:

  • create reusable services

  • transform messages between different formats

  • orchestrate the services of multiple autonomous systems

  • send and receive messages between multiple transport protocols available, using either synchronous or asynchronous methods

  • log, audit and monitor messages flowing through the platform

  • validate the messages according to certain business rules

  • enrich the messages from different sources

  • queue the messages if the applications involved within the integration scenarios run at different processing speeds

  • implement services in less time using Python, a very high-level programming language that promotes ease of use and development speed. A Hello World service is shown below. Such a service can be hot-deployed onto a cluster without a need to restart servers.

    from zato.server.service import Service
    class HelloWorld(Service):
        def handle(self):
            self.response.payload = 'How goes it?'


Various interfaces that Zato can access allow one for reaching out to any application, regardless of its origin and programming language used. The interfaces include:

  • The ubiquitous HTTP protocol
  • REST
  • SOAP
  • Redis-based publish/subscribe for REST applications
  • FTP(S)
  • AMQP
  • IBM MQ
  • ZeroMQ
  • JMS
  • SOAP
  • SQL
  • Redis
  • Cassandra CQL
  • Amazon S3
  • OpenStack Swift
  • Odoo/OpenERP
  • SMTP
  • IMAP

Web admin

Zato has a slick and powerful web admin application for administrator to manage the environments. Web admin allows one to perform routine, planned as well as ad-hoc activities, such as deploying services, configuring security, access channels, browsing the messages and more.


Almost no server restarts are required. Servers automatically reload their configuration without disrupting the message processing. Almost all changes propagate across all nodes of a cluster completely behind the scenes.