Why not automatically create default-topic?


#1

Dear Zeebe team :slight_smile:

Most people I talked to so far are annoyed by the get started experience of the default-topic. This was first raised in Zeebe 0.4.0 Release. I would like to address this again as I think this is one of the most important show stoppers for a smooth get started experience at the moment so it is really important to me!

Despite that it is currently unclear how to create the topic at all (e.g. as I haven’t found the zbctl release - but this things are improvable) it is not a good idea to bother people with creating a topic first, even if they have no idea what that topic is about. They can and probably should learn about topics - but not before they even started there very first workflow.

I do not see any harm in

  • having a broker configuration flag if the default-topic should be created (default: true)
  • having an API shortcut (my clear preference) or at least a constant available to address the default topic.

Cheers
Bernd


#2

Another idea without any risk involved: add a list of auto-created topics in the broker configuration, by default it is “default-topic”. Would already help big time.


#3

Hi all,

yes it’s really annoying … I always forget to create the default topic after starting up my (fresh) broker with docker.

After talking to @menski I was at least able to create the default topic automatically on startup of my go project, if it does not already exist.

But I really like @berndruecker Idea of having the configuration flag for automatically creation of the default topic. :slight_smile:
This will be a create help for new users of zeebe.

Cheers,
Patrick


#4

Agree. I believe having it as part of the configuration would be the easiest.
It would make it easier to provision brokers using docker or also other scripts.


#5

Just for reference - I also proposed to move the topic in the fluent Java API - as it is really confusing there at the moment: https://github.com/zeebe-io/zeebe/issues/763. I would love to get rid of it anyway if using the default-topic :slight_smile:


#6

To reinforce the importance of the topic: In my talk last week I even forgot to create that default-topic myself (I deleted the data of the broker before that talk to start fresh): https://youtu.be/lZIe02um5eI?t=2505. And I discussed exactly that topic in this forum earlier that day. Now you definitely can argue that I am just plain stupid (which is definitely true in this case), but it would have been much cooler if default-topic would have been there. And I can imagine that there are people out there less familiar with Zeebe as me…


#7

It would also be very cool to have some error message like “topic not found”. :smiley:


#8

:+1: (+ some characters :-))


#9

We will work on this topic in the next quarter. The idea is to provide a simple way to start a broker in a single node/demo environment, which provides all things needed for a smooth getting started experience, and a cluster way which is more focused on a production environment and allows you to setup the broker in the desired state.


#10

Sounds good! I wonder how the Java client then can hide the default-topic in an easy way…

And I still bet, that even in a production environment most scenarios will start with the default-topic, one partition and a bit of replication. But let’s see :slight_smile:


#11

If you don’t specify a topic in the Java Client it will address the default-topic. For example to deploy a workflow you would write:

final DeploymentEvent deployment = client.topicClient().workflowClient()
            .newDeployCommand()
            .addResourceFromClasspath("order-process.bpmn")
            .send()
            .join();