/zilla

🦎 A multi-protocol edge & service proxy. Seamlessly interface web apps, IoT clients, & microservices to Apache Kafka® via declaratively defined, stateless APIs.

Primary LanguageJavaOtherNOASSERTION


Latest Release Slack Community Artifact HUB

DocsQuickstartDemosBlog

🦎 Zilla: a multi-protocol edge & service proxy

Zilla helps develop and manage event-driven applications and services. It is a lightweight yet feature-rich proxy with first-class support for HTTP, SSE, gRPC, MQTT, and Kafka protocols.

Use Zilla as a:

  • Service sidecar — deployed alongside a service to enforce authentication, validate schemas, gather metrics, and terminate TLS.
  • Kafka API gateway — fronting Apache Kafka, enabling web apps, IoT clients, and non-Kafka microservices to directly consume and produce data streams via their own native protocols.

Build real-time applications, integrate services, streamline architectures

Zilla Use Case Description
Data broadcasting (Kafka fan-out) → Broadcast real-time updates to end users at web-scale. Power live data feeds such as stock tickers, betting odds, travel updates, and auction prices.
IoT Kafka ingestion → Ingest and process IoT data in real-time by turning Kafka into a fully-fledged MQTT broker.
Async workflows for sync microservices → Make request-response microservice communication asynchronous by routing it over a pair of Kafka topics.
Create an event-mesh → Integrate mesh and event-driven microservices by routing connectivity through Kafka. Make Kafka look like a gRPC/REST server or gRPC client.
Secure a Server Sent Event (SSE) API → Secure an SSE API by adding JWT-based Continous Authorization.
Validate MQTT via AsyncAPI → Enforce an AsyncAPI schema for messages going into an MQTT broker.
Much more! Check out all the Zilla Demos and Zilla Examples.

Get started in 60 seconds

Zilla is stateless, declaratively configured, and has no external dependencies. The fastest way to get started is to follow the hosted Quickstart.

Install options

Single-node and cluster deployment options are available.

Homebrew

brew tap aklivity/tap 
brew install zilla

zilla start -ve -c ./zilla.yaml

Docker

docker pull ghcr.io/aklivity/zilla

docker run ghcr.io/aklivity/zilla:latest start -v

Helm

helm install zilla oci://ghcr.io/aklivity/charts/zilla --namespace zilla --create-namespace --wait \
--values values.yaml \
--set-file zilla\\.yaml=zilla.yaml

Key integrations

  • Support for OpenAPI and AsyncAPI specifications for configuration and/or validation enforcement.
  • Integrations with external schema registries, such as Apicurio and Karapace, for a variety of data formats, including JSON, avro, and protobuf.
  • Support for authorization via JWT, including continous authorization for SSE.
  • Integrations with standard observability tools, including Prometheus and OpenTelemetry, for logging and metrics.

📚 Read the docs

  • Zilla Documentation: Guides, tutorials and references to help understand how to use Zilla and configure it for your use case.
  • Product Roadmap: Check out our plan for upcoming releases.
  • Zilla Examples: A collection of pre-canned Zilla feature demos.
  • Eventful Petstore Demo: See Zilla make the OpenAPI/Swagger Petstore service event-driven by mapping it onto Kafka in just a few lines of YAML.
  • Taxi Demo: A demo of a taxi-based IoT deployment with Zilla, Kafka, OpenAPIs and AsyncAPIs.

📝 Check out blog posts

Looking to contribute to Zilla? Check out the Contributing to Zilla guide. ✨We value all contributions, whether source code, documentation, bug reports, feature requests or feedback!

Many Thanks To Our Contributors!

Zilla is made available under the Aklivity Community License. This is an open source-derived license that gives you the freedom to deploy, modify and run Zilla as you see fit, as long as you are not turning into a standalone commercialized “Zilla-as-a-service” offering. Running Zilla in the cloud for your own workloads, production or not, is completely fine.

(🔼 Back to top)