Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Restructure: Overview, Getting Started, Core Concepts > Protocol #292

Open
wants to merge 26 commits into
base: feature/restructure
Choose a base branch
from

Conversation

cahyosubroto
Copy link

No description provided.


### Key Concepts

- **Broker**: A Kafka server that stores data and serves clients.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to talk about Kafka Wire Protocol, instead of general Kafka concepts (broker, producer & consumers).

ref: https://kafka.apache.org/protocol.html


## Supported Features

1. Basic Filesystem operations (CREATE, UPDATE, DELETE).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

these are all the supported operations:

CREATE_DIRECTORY,

CREATE_FILE,

DELETE_DIRECTORY,

DELETE_FILE,

READ_DIRECTORY,

READ_FILE,

READ_FILE_CHANGES,

READ_METADATA,

WRITE_FILE;


## Security

### HTTPS
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should approach/rephrase this differently. As this is more about mapping of http-filesystem binding.

Any insights? @jfallows


During authentication, the client sends the token in the Authorization header with each request. The server then validates the token’s integrity and claims before granting access.

## Zilla: HTTP Filesystem Use Cases
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Zilla: Filesystem Use Cases, so that it's consistent with other pages.

- **HTTP/2** – Faster, multiplexed streams, header compression.
- **HTTP/3** (On the Roadmap)

### Differences Between HTTP/1.1 and HTTP/2
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add HTTP/3

- **Data Governance**: Validate message schemas with [Schema Registry](../../reference/config/catalogs/apicurio-registry.md) support.
- **Data Conversion**: Support data format conversion from one format to another.
- **Protocol Mapping**: Enable effortless communication with HTTP, WebSocket, and MQTT through native protocol integration.
- **Continuous Authorization**: Enforce continuous authorization with real-time Challenge events.
Copy link
Contributor

@ankitk-me ankitk-me Feb 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this Continuous Authorization doesn't seems required here.

4. **Congestion Control** - TCP dynamically adjusts the data transmission rate based on network conditions.
5. **Error Detection and Recovery** - TCP uses checksums to detect errors in transmitted data so that if an error is found, it triggers retransmission of the affected segment.

![How TCP initiates Communication](./images/tcp-initiates-connection.png)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

reduce image size


![TLS Handshake](./images/tls-initiation.png)

1. **Encryption through TLS handshake** - The TLS handshake establishes a secure communication channel by negotiating encryption keys and cipher suites between the client and server.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we simplify these steps? As we have already captured the flow in the image.


### WS Communication Workflow

![WS Communication Workflow](./images/websocket-connection.png)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

smaller image size, lets make it consistent with other pages.


![WS Frame Structure](./images/websocket-frame-structure.png)

The WebSocket frame structure consists of several components:
Copy link
Contributor

@ankitk-me ankitk-me Feb 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

above image should be enough, explanation can be simpler.


Zilla is under the Aklivity Community License. This open-source license gives the freedom to deploy, modify, and run Zilla as needed, as long as it is not turned into a standalone commercialized “Zilla-as-a-service” offering. A commercial version of Zilla (<ZillaPlus/> “Zilla Plus”) is available, which includes additional enterprise integrations and support. For more information, please visit the [<ZillaPlus/>](https://www.aklivity.io/products/zilla-plus) product page.

| Capability | <ZillaPlus/> for Enterprise | Zilla Open Source |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

table not required.

Jump to the [quickstart](./how-tos/quickstart/index.md) guide.
:::

## Who Zilla is for?
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

move this after "Concepts", also if required rephrase.

# Real-World Use Cases

Zilla can be used as a service proxy (sidecar) or as an [AsyncAPI](https://www.asyncapi.com/) Kafka gateway.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can list these pre-curated examples: https://github.com/aklivity/zilla-examples.

Comment on lines +15 to +41
### For HTTP Services

- **Metrics and Telemetry:** Gather metrics and telemetry data on inbound and outbound traffic.
- **Client Authentication:** Implement JWT-based authentication.
- **Schema Enforcement:** Enforce OpenAPI and AsyncAPI schema on requests.

### For SSE Services

- **Metrics and Telemetry:** Gather metrics and telemetry data on inbound and outbound traffic.
- **Client Authentication:** Implement JWT-based authentication.
- **Continuous Authorization:** Zilla supports Continuous Authorization, which gracefully re-authorizes a client on an SSE server's behalf without abruptly terminating message streams. For more information, read [this article](https://www.aklivity.io/post/a-primer-on-server-sent-events-sse#:~:text=Securing%20SSE%20with%20aklivity%20Zilla).
- **Schema Enforcement:** Enforce AsyncAPI schema definition on outbound messages.

### For MQTT Services

- **Metrics and Telemetry:** Gather metrics and telemetry data on inbound and outbound traffic.
- **Client Authentication:** Implement JWT-based authentication.
- **Schema Enforcement:** Enforce AsyncAPI schema definition on outbound messages.

### For Kafka Services

- **Metrics and Telemetry:** Gather metrics and telemetry data on inbound and outbound traffic on Kafka service in <ZillaPlus/>.

### For gRPC Services

- **Metrics and Telemetry:** Gather metrics and telemetry data on inbound and outbound traffic.
- **Schema Enforcement:** Enforce Protobuf schema definition on inbound messages.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can simplify this, as for each protocol we have already listed these features.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants