What's New In Zeebe: Scaling Zeebe, New Client APIs, Faster Requests, Timestamps, NodeJS Client, and Default Topic is Back!

Written by Daniel Meyer on May 16 2018 in the What‘s New In Zeebe category.

Welcome to the first-ever edition of “What’s New In Zeebe”, where we share our progress on the journey of building Zeebe, the world’s first high-throughput, resilient, and horizontally-scalable workflow engine.

We might not publish a “What’s New In Zeebe” post every non-release week, but when there are exciting developments to share in between releases, we want to be sure we’re getting the word out.

If you have questions for the Zeebe team, or you’d like to get involved with the project, take a look at the Zeebe Community page. There, you’ll find our user support forum, public Slack channel, the Zeebe Github project, and our issue tracker. We gladly welcome new users and contributors to the Zeebe community.

Scaling Zeebe

Felix has been running tests on AWS, particularly to test the new clustering layer released in 0.9.0. Apparently, Zeebe scales :)

This is a great milestone for Zeebe because prior to introducing the replication factor, each broker would replicate each partition, so adding more brokers would not allow you to scale throughput–it would only make the system more resilient by having more copies of the data.

New Client APIs

Thorben and Philipp pushed the first increment of a new Java API that’s a lot easier to use and makes it clearer to users how to formulate fluent API requests like this:

final ZeebeFuture<WorkflowInstanceEvent> workflowInstanceEvt = zeebe.workflowClient()
    .newCreateInstanceCommand()
    .bpmnProcessId("foo")
    .latestVersion()
    .send();

Note how it always returns a future that you can decide to block on or not.

There is a lot more to the new API, and I am sure that the team will provide us with a more detailed update after the next alpha release.

Sam also adjusted the Golang client to the new protocol, and we can expect full support for it in the next release.

Faster Requests

We have also been working on making the transport layer faster and scale better when communicating with multiple brokers from one client or broker. The results are great:

You can find more details in this Github issue.

To achieve this, we rewrote the buffer management in the transport layer, and now it is also possible to send requests asynchronously in a loop without having to wait for the response.

Felix is particularly happy that he can write his performance tests like this:

for (int i = 0; i < 1_000_000; i++)
{
    zeebe.workflowClient()
      .newCreateInstanceCommand()
      .bpmnProcessId("foo")
      .latestVersion()
      .send(); // async sending of the request
}

Timestamps

Thanks to Nicolas, each record in Zeebe now has a timestamp. Timestamps have millisecond precision and reflect when the record (event or command) was appended to the partition / log.

This work prepares us for upcoming support for Zeebe in Camunda Optimize and another webapp we are going to build but that is still “on the QT and very hush hush”…

NodeJS Client

SebastianSam, and Felix have made great progress on exposing the Golang client over FFI so that it can be used as a shared library in an upcoming NodeJS client.

As far as I hear, there was a major breakthrough and both Request-Response but also Subscription Style interactions work.

Work is being conducted here: https://github.com/zeebe-io/zbc-js

Default Topic Is Back!

It is now possible to define one or multiple topics along with partition count and replication factor in the configuration file:

[[topics]]
name = "development"
partitions = 3
replicationFactor = 1

[[topics]]
name = "production"
partitions = 16
replicationFactor = 3

Also, the broker will ship with a default topic configured out of the box, so no more creating a topic in each demo or unit test that you write. I know a certain guy who will be very happy about that!

What's New In Zeebe: Scaling Zeebe, New Client APIs, Faster Requests, Timestamps, NodeJS Client, and Default Topic is Back!

原文地址:https://www.cnblogs.com/rongfengliang/p/10347111.html

时间: 2024-08-28 11:30:53

What's New In Zeebe: Scaling Zeebe, New Client APIs, Faster Requests, Timestamps, NodeJS Client, and Default Topic is Back!的相关文章

zeebe docker-compose 运行(包含monitor)

环境准备 docker-compose 文件 version: "3" services: db: image: oscarfonts/h2 container_name: zeebe_db ports: - "1521:1521" - "81:81" monitor: image: camunda/zeebe-simple-monitor environment: - spring.datasource.url=jdbc:h2:tcp://db

zeebe 0.20.0 集群部署试用

zeebe 0.20.0 是生产可用的第一个版本,同时也有好多变动,以下是一个简单集群的运行以及一个简单 的运行说明 环境准备 docker-compose 文件 version: "3" services: db: image: 1000kit/h2 container_name: zeebe_db ports: - "1521:1521" - "8181:8181" monitor: image: camunda/zeebe-simple-m

使用zeebe DebugHttpExporter 查看zeebe 工作流信息

zeebe 提供了一个DebugHttpExporter 可以方便的查看部署以及wokrflow 运行信息 以下是一个简单的运行试用,同时集成了prometheus,添加了一个简单的grafana dashboard 环境准备 docker-compose 文件 version: "3" services:    operate:        image: camunda/operate:1.1.0        ports:            - "8080:8080

Redis Essentials 读书笔记 - 第八章: Scaling Redis (Beyond a Single Instance)

Chapter 8. Scaling Redis (Beyond a Single Instance) 精彩的总在最后,终于来到这一章了! 本章讲述通过多实例来进行水平扩展,重要的概念有:persistence, replication, partitioning. Persistence 内存是临时的, 易失性存储, 为防止数据丢失, Redis提供了两种persistence的方法:Redis Database (RDB) 和 Append-only File (AOF),两种方法可以单独使

tslib部分源码的分析

用tslib进行屏幕检验时,执行./ts_calibrate 校验完成后会生成一个pointercal文件,一直以往我们都是放在了/etc目录下,但是由于文件系统使用了只读方式,文件系统所在的mtd分区为mtd5,只有扩展的文件系统分区,mtd6分区,使用的opt目录是可读可写的,那么我们就需要将tsblib屏幕校验时生成的文件指定到/opt目录下,不过今天发生了一个很有趣的事情,我们都知道tslib生成的检验文件可以有用环境变量的方式指定到一个特定的目录下,如: export POINTERC

Go语言(golang)开源项目大全

转http://www.open-open.com/lib/view/open1396063913278.html内容目录Astronomy构建工具缓存云计算命令行选项解析器命令行工具压缩配置文件解析器控制台用户界面加密数据处理数据结构数据库和存储开发工具分布式/网格计算文档编辑器Encodings and Character SetsGamesGISGo ImplementationsGraphics and AudioGUIs and Widget ToolkitsHardwareLangu

Java Secure Socket Extension (JSSE) Reference Guide

Skip to Content Oracle Technology Network Software Downloads Documentation Search Java Secure Socket Extension (JSSE) Reference Guide This guide covers the following topics: Skip Navigation Links Introduction Features and Benefits JSSE Standard API S

webrtc教程

cdsn博客不支持word文件,所以这里显示不完全.可到本人资源中下载word文档: v0.3:http://download.csdn.net/detail/kl222/6961491 v0.1:http://download.csdn.net/detail/kl222/6677635  下载完后评论,可以返还你的积分.此文档还在完善中,欢迎大家交流,共同完善.    Webrtc  教程 版本0.3(2014年2月) 康林 ([email protected]) 本文博客地址:http://

WebRTC in the real world: STUN, TURN and signaling

What is signaling? Signaling is the process of coordinating communication. In order for a WebRTC application to set up a 'call', its clients need to exchange information: Session control messages used to open or close communication. Error messages. M