Skip to content

Latest commit

 

History

History
95 lines (66 loc) · 3.26 KB

README.md

File metadata and controls

95 lines (66 loc) · 3.26 KB

Vortex

This demo is created to showcase multiple protocols being handled by Zilla with ease and executing a high volume of messages with low latency.

Requirements

  • Docker Compose

Setup

  1. Start all of the services using docker-compose. The startup.sh script will build and start all of the needed services. This command will also restart an existing stack.

    sh startup.sh

    This will take a long time to build the first time it is run since it will need to download maven and npm packages.

  2. Open the UI at localhost.

  3. Type a name into the input box and select a color, then click SEND.

  4. You should see your name and a color wheel being filled out for each of the 100 messages being sent. You can see the log of each message that should look like this

Outputs

kafka

INFO  ==> ** Starting Kafka setup **
WARN  ==> You set the environment variable ALLOW_PLAINTEXT_LISTENER=yes. For safety reasons, do not use this flag in a production environment.
INFO  ==> Initializing Kafka...
INFO  ==> No injected configuration files found, creating default config files
INFO  ==> Initializing KRaft...
WARN  ==> KAFKA_KRAFT_CLUSTER_ID not set - If using multiple nodes then you must use the same Cluster ID for each one
INFO  ==> Generated Kafka cluster ID 'ZA8K9ypfQyyVGv9cwATeLQ'
INFO  ==> Formatting storage directories to add metadata...
INFO  ==> ** Kafka setup finished! **

kafka-init

Created topic http_messages.
Created topic grpc_messages.
Created topic grpc_exchanges.
Created topic sse_messages.

zilla

Zilla will print a copy of the zilla.yaml file that was installed then print a line Started once zilla is ready for connections.

grpc_client & kafka_event_translator

On startup

gRPC Client Started!
Kafka Translator Started!

On Message

kafka_event_translator  | sending to GRPC_TOPIC Record:(test5A7CD9, 99)
grpc_client             | Found message: name: "test"
grpc_client             | color: "#5A7CD9"
grpc_client             | loop_count: 99
grpc_client             | 32767: "\001\002\000\310\001"
grpc_client             | 
kafka_event_translator  | sending to SSE_TOPIC Record:(
kafka_event_translator  | test#5A7CD9d, 198)

vortex_ui

/docker-entrypoint.sh: Configuration complete; ready for start up

http_messages & grpc_messages & sse_messages

Each message makes a round through the three kafka topics. These containers print the contents of these topics as they receive the messages.

http_messages | {"topic":"http_messages","partition":0,"offset":99,"tstype":"create","ts":1685641119345,"headers":["content-type","application/json"],"key":"test5A7CD9","payload":"{\"name\":\"test\",\"color\":\"#5A7CD9\",\"loopCount\":99}"}
grpc_messages | {"topic":"grpc_messages","partition":0,"offset":99,"tstype":"create","ts":1685641119358,"key":"test5A7CD9","payload":"\n\u0004test\u0012\u0007#5A7CD9\u0018c"}
sse_messages  | {"topic":"sse_messages","partition":0,"offset":99,"tstype":"create","ts":1685641119389,"key":"7f2b31b5-45a6-4ab3-8597-375dea9b5869-63d4315234e3d00275a85b7a33928b6d","payload":"{\n  \"name\": \"test\",\n  \"color\": \"#5A7CD9\",\n  \"loopCount\": 100\n}"}