<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Towards Process Mining on Kafka Event Streams</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Maxim Vidgof</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Vienna University of Economics and Business (WU Wien)</institution>
          ,
          <addr-line>Welthandelsplatz 1, 1020 Vienna</addr-line>
          ,
          <country country="AT">Austria</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2024</year>
      </pub-date>
      <abstract>
        <p>Process mining is a family of techniques to analyze business processes based on the event logs produced during their execution. While most process mining techniques rely on readily available event logs, extracting them poses challenges and limits their availability and usability. As event-driven architecture is gaining momentum, event streaming platforms like Apache Kafka can solve this problem. This paper proposes an architecture that allows using Kafka both as message broker for the running process as well as data store directly enabling process mining, including streaming process mining on the same dataset.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Process mining</kwd>
        <kwd>Event stream</kwd>
        <kwd>Apacke Kafta</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
    </sec>
    <sec id="sec-2">
      <title>2. Background</title>
      <sec id="sec-2-1">
        <title>2.1. Process mining</title>
        <p>
          Process mining is a family of techniques to analyze business processes based on event logs
produced during their execution [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]. These techniques can further be divided into discovery
– extracting process models from event logs, conformance – comparing an event log with the
process model and detecting deviations, and enhancement – extending or improving an existing
process model using information from an event log [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]. Event logs are collections of timestamped
event records of execution of work items or other process-relevant events, recorded by BPMSs
and enterprise systems such as CRM and ERP. Event logs are assumed to contain data related to
a single process, and each event in the log must refer to a single process instance or case as well
as to an activity. Events can also contain additional information such as resource or cost.
        </p>
        <p>
          While process mining techniques rely on event logs, extracting them from the information
systems supporting the process is not trivial. If a process is orchestrated by a BPMS, event data
can be easily extracted in the right format [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]. In other cases, however, the only source of data
are relational databases, whose primary task is to store the output of process activities rather
than events themselves. Moreover, the unique case identifier that is required may not be stored
across all systems, and in some cases business processes cannot have a single case identifier,
which led to emergence of object-centric process mining [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ].
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>2.2. Streaming Process Mining</title>
        <p>
          Streaming process mining refers to a set of techniques and tools dealing with processing
streaming event data [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. As opposed to other process mining techniques that analyze static
event logs, streaming process mining captures and analyzes events as they happen, in near-real
time. Typical use cases include conformance checking to immediately detect violations and
counteract timely, as well as process discovery. A major complication in streaming scenario lies
in the limited amount of computational resources, especially memory, making impossible to
employ traditional process mining techniques relying on complete event logs. Instead, diferent
techniques like sliding window, problem reduction, ofline (pre-)computation as well as hybrid
approaches are applied, leading to eficient processing at the cost of data completeness.
        </p>
      </sec>
      <sec id="sec-2-3">
        <title>2.3. Event Sreaming and Apache Kafka</title>
        <p>
          Event streaming is the practice of capturing data in real-time from diferent sources in form
of streams of events, storing these streams durably for later retrieval, processing and reacting
to these streams in real-time and retrospectively, as well as routing these events to specified
destinations [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]. Event streaming allows to loosely couple diferent systems by using a pub/sub
model. Apache Kafka1 is an event streaming platform allowing to publish and subscribe to
streams of events, store them durably and process them as they occur or retrospectively.
        </p>
        <p>An event in Kafka has a key, value, timestamp and optional metadata. The events are organized
and stored in topics. A topic can have multiple producers and multiple consumers. In contrast
to traditional messaging systems, the events are not deleted after consumption. This allows
multiple consumers to process the events at their own pace, as well as read the entire topic
from the beginning. For each topic, the retention period after which the events are deleted can
be set. Importantly, this retention period can also be set to infinity, allowing for permanent
storage of events. To allow for scalability, topics are split into partitions, which are scattered
across multiple brokers. Events with the same key are always written to the same partitions,
and Kafka guarantees the order preservation for the events in the same partition.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Proposed Architecture</title>
      <p>This section presents the architecture for a Kafka-based system supporting process mining.
Section 3.1 gives an overview of the system architecture. Section 3.2 describes the topic
architecture, i.e. how events are split into topics. Section 3.3 describes the proposed serialization
format of events in Kafka. Section 3.4 discusses the role of a BPMS in the proposed architecture,
and Section 3.5 explains how process mining can be performed.</p>
      <sec id="sec-3-1">
        <title>3.1. Overview</title>
        <p>The proposed system architecture is shown in Figure 1. The central element is the Kafka
event streaming platform that connects the other components. Importantly, Kafka serves as a
communication backbone for the Services responsible for executing the tasks in the process.
Depending on the environment where such system is deployed, there might already be a BPMS
present, in which case it also should communicate with Kafka. Essentially, Kafka serves as the
single source of truth for all traditional process mining components and for streaming process
mining, which might have diferent data requirements.</p>
        <sec id="sec-3-1-1">
          <title>BPMS</title>
        </sec>
        <sec id="sec-3-1-2">
          <title>Process mining</title>
        </sec>
        <sec id="sec-3-1-3">
          <title>Streaming process mining</title>
        </sec>
        <sec id="sec-3-1-4">
          <title>Kafka</title>
        </sec>
        <sec id="sec-3-1-5">
          <title>Services</title>
        </sec>
        <sec id="sec-3-1-6">
          <title>Services</title>
        </sec>
        <sec id="sec-3-1-7">
          <title>Services</title>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>3.2. Topic Architecture</title>
        <p>In Kafka, event streams are stored in topics. The number and semantics of the topics is not
predefined and should be selected according to the domain specifics. This consideration is
crucial since Kafka only guarantees order preservation for events within one partition of the
same topic. Thus, the events that need strict order, e.g. events within one case, should be stored
in one partition. This is achieved by assigning the same key to all these events, e.g. a case ID. In
this section, four strategies are proposed.</p>
        <p>Case ID as topic. In this case, for each case that has started, a new topic has to be created in
the broker. All further events referencing this case ID should be sent to this topic. Consumers
should regularly poll the broker for new topics and subscribe to new topics that appear. Each
case topic should have only one partition to ensure the event order within the case. Such
architecture would, however, sufer from a number of other issues. First, the existing system
supporting the process will have to be re-designed to accommodate for the new topics. Also,
having such number of topics will introduce unnecessary overhead, especially as the number of
old inactive topics grows. Finally, while such architecture is very much oriented on traditional
event logs with single case ID, object-centric logs are not supported.</p>
        <p>Activity as topic. This architecture most closely resembles known microservice best
practices. Each microservice (or other system) responsible for a task writes the corresponding
events in its topic. The events are later picked up by the services relying on them. Case IDs
can be used as event keys, allowing for simple partitioning. For object-centric processes, the
object ID of some object involved in the activity can be used. A benefit of such strategy is the
minimality of change necessary in the system if it already followed event-driven architecture.
In the ideal case, the system can remain untouched (except the schema update, see Section3.3)
and additional consumers can be seamlessly added. Events having the same key (case or object
ID) will benefit from consistent partitioning and total order within partitions. A downside of
such system is, however, the partial view that every topic would have on the execution. The
streams will have to be aggregated (using Kafka Streams API or processing outside of Kafka),
and event correlation will be crucial. However, it might be solved with the event keys and
timestamps provided by Kafka producer or broker.</p>
        <p>Process as topic. Another approach is to store all events related to one business process in
one topic. Case IDs will be used as keys for the traditional processes. The keys for the processes
with no case ID are subject to discussion, however, it is reasonable to use the ID of some object
and perform event correlation outside Kafka. The activity label must be included in the event
value, and the consuming services will not only have to monitor the right topic but also make
sure to only process events with the correct activity label. A clear benefit is that this setting
is the closest to the desired output event log. Each topic will simply contain all executions
of a process and can almost directly be used in process mining. A downside is the additional
overhead on the (micro-)services that will have to process all events and filter them based on
the activity label.</p>
        <p>Single topic. A variation of the previous strategy, which can be especially useful in scenarios
where borders of business processes are unclear. In this case, all events are put into the same
topic. The event key for partitioning has to be defined using domain knowledge. A benefit of
such strategy is the simplicity of implementation, as it only minimally uses Kafka as a universal
message broker. However, in this setup the (micro-)services will sufer from even more filtering
overhead. In addition, such single topic can quickly become a data swamp, especially if infinite
retention is selected.</p>
      </sec>
      <sec id="sec-3-3">
        <title>3.3. Serialization Format</title>
        <p>
          Kafka itself is schema-less and stores the events as raw bytes, however, it is good practice to
use common data exchange formats like JSON2 , protobuf3 or Avro4 . In process mining, on the
other hand, XES5 and OCEL [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] are accepted standards. XES is used for exchanging event logs
having a case ID, and uses XML as serialization. However, recently JXES [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] was proposed to
support serialization of XES event logs in JSON. OCEL is used for event logs not having a single
2https://www.json.org/
3https://protobuf.dev/
4https://avro.apache.org/
5https://xes-standard.org/
case ID, it ofers JSON serialization 6 included in the standard (along with the XML and SQLite
variants).
        </p>
        <p>This paper proposes using JXES and OCEL JSON as the event formats. It must be noted that
OCEL objects cannot be stored in the event streams but rather will have to be reconstructed
from the events that created or referenced used them at the event log construction stage.</p>
        <p>The payload, or the value of the events should contain all the necessary event attributes. For
the traditional logs, it is recommended to store at least concept:name, case ID attribute and
time:timestamp of the producing application. While some of the attributes can be inferred
from Kafka events depending on the chosen topic architecture, it improves the readability and
unifies the approach regardless of the topic architecture. Note that the case ID on the event level
has no standard attribute in XES, thus a custom one, e.g. caseid has to be used. Additional
attributes should be stored in the same way as in XES event logs. For the object-centric processes,
in addition, the referenced objects with their IDs and relevant attributes must be included in
the event value. While not all of the stored attributes are necessary for the services processing
the events, e.g. case ID, such services should be configured to simply copy these attributes to
their output events.</p>
      </sec>
      <sec id="sec-3-4">
        <title>3.4. Role of a BPMS</title>
        <p>The proposed architecture can be used both in conjunction with a BPMS as well as without it.
It can be distinguished between the following deployment scenarios.</p>
        <p>BPMS-centric. In these scenarios, BPMS plays a central role in orchestrating a process. The
events have a single case identifier, and external services are heterogeneous, requiring not only
event-driven communication but also other methods, such as REST, Long polling and Java API.
In these scenarios, a BPMS indeed serves as a single source of truth for process mining, and it
would be challenging to meaningfully extract the process data from other sources. However,
the events can be constantly extracted from the BPMS into Kafka to enable streaming process
mining with minimal system changes.</p>
        <p>BPMS-aided. If a BPMS is used to orchestrate a fully-automated process with event-driven
services, this theoretically means both the BPMS and Kafka can be used as the primary event
store. However, it may be still beneficial to use the proposed event serialization format and
topic architecture to of-load data extraction tasks to Kafka. In addition, such scenarios can
profit from streaming process mining if the proposed architecture is used.</p>
        <p>No-BPMS. For other scenarios, where no BPMS is present, the proposed architecture
becomes crucial for enabling process mining. If the process is composed of loosely coupled
(micro-)services and systems, having a unified source of data is the only alternative to the
complicated and error-prone process of extracting and correlating events (with possibly incomplete
information) from heterogeneous internal storages of the respective systems.</p>
      </sec>
      <sec id="sec-3-5">
        <title>3.5. Process Mining</title>
        <p>Infinite retention allows to use Kafka both as message broker for the automated services as
well as storage for historic data. The proposed architecture directly enables process mining on
6https://www.ocel-standard.org/specification/formats/json/
event streams. The last component that is needed for this is a Kafka consumer that connects
to the respective topic(s) and extracts the events. If activity as topic architecture is chosen,
this component also has to order the events using the timestamps provided by Kafka. The
extraction of events is straightforward due to the standardized serialization format in the
event streams. It must be noted that object-centric event logs might require additional event
correlation eforts. The extracted event logs can be easily output as XES or OCEL logs or directly
used by a (streaming) process mining tool.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Related Work</title>
      <p>Apache Kafka has been used in projects related to various topics such as process mining,
digital twins, IoT, and software development. However, these projects merely use Kafka as a
middleware to exchange data between components. To the best of the author’s knowledge,
no paper shows explicit considerations about the format of the data and the strategy of using
Kafka topics.</p>
      <p>
        [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] uses Kafka as middleware for communication between components of a Digital Twins
Cloud Platform. In [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], Kafka is a crucial part of a distributed architecture for real-time
monitoring of Roll on/ Roll of (RoRo) terminals. This architecture combines Apache Kafka,
Apacke Spark7 and ProM8 platforms to perform process mining on the events recorded by the
terminals. Kafka is used to transport the event logs in format of streams of events from their
source – RoRo terminals – to Apache Spark cluster responsible for the online processing of
the events. While it is mentioned that the data source are XES event logs and that the ProM
framework is used for process mining, the exact specifics of the data exchange format and
schema are not provided.
      </p>
      <p>
        [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] proposes a framework that applies event streaming to environmental data. A major
dificulty in this domain is the incompatibility of data producers and data consumers due to
diferent data formats. The framework solves this problem by using Kafka Connect APIs to
receive data from heterogeneous sources and perform lightweight transformations to bring
the data into unified format and prepare them for further processing. In [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], Kafka is used
to collect events from a CI/CD pipeline of an application. These events are then transformed
and output in a format suitable for process mining. [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] presents an IoT-enriched event log
for process mining research in smart factories. It uses Kafka to collect additional data from
the machines in the smart factory. This data together with the domain ontology is then used
to enrich the log produced by the Workflow Management System. It enabled correcting the
timestamps and reconstructing unrecorded events.
      </p>
      <p>
        Camunda process orchestration platform has already developed own Kafka connectors9
and provides examples of using them for process automation [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. More broadly, [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] shows
how a workflow engine can be used with event streaming platform. However, also here no
recommendation on data architecture is provided.
7https://spark.apache.org/
8https://promtools.org/
9https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/kafka/
      </p>
    </sec>
    <sec id="sec-5">
      <title>5. Conclusion</title>
      <p>Process mining can help organizations gain insights into their processes and find improvement
potentials. Data extraction, however, poses significant dificulties as not all systems supporting
business processes store the data in a format suitable for process mining. With the advent
of event-driven architecture, where event streams are used to communicate between loosely
coupled components, these dificulties can be solved by using data architecture suitable for
process mining.</p>
      <p>In this paper, a system architecture is proposed that uses Kafka event streams both as a
platform for communication between systems responsible for the execution of a business
process (e.g. BPMS, ERP systems and automated (micro-)services) and as a data storage for
online and ofline process mining. To this end, this paper proposes data architecture for Kafka
topics, event serialization format, and a process mining component connecting the system to
state-of-the-art process mining tools and techniques. In addition, it discusses the possible role
of a BPMS in such setting.</p>
      <p>Future work involves implementing the proposed architecture as well as evaluating its
usefulness in simulated and real-life business processes.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>M.</given-names>
            <surname>Dumas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. L.</given-names>
            <surname>Rosa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Mendling</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H. A.</given-names>
            <surname>Reijers</surname>
          </string-name>
          , Fundamentals of Business Process Management,
          <source>Second Edition</source>
          , Springer,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>W. M. van der Aalst</surname>
          </string-name>
          ,
          <source>Process Mining: Data Science in Action, Second Edition</source>
          , Springer,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>A.</given-names>
            <surname>Berti</surname>
          </string-name>
          ,
          <string-name>
            <surname>W. M. P. van der Aalst</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Zang</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Lang</surname>
          </string-name>
          ,
          <article-title>An open-source integration of process mining features into the camunda workflow engine: Data extraction and challenges</article-title>
          , in: C. D.
          <string-name>
            <surname>Ciccio</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Depaire</surname>
            ,
            <given-names>J. D.</given-names>
          </string-name>
          <string-name>
            <surname>Weerdt</surname>
            ,
            <given-names>C. D.</given-names>
          </string-name>
          <string-name>
            <surname>Francescomarino</surname>
          </string-name>
          , J. Munoz-Gama (Eds.),
          <source>Proceedings of the ICPM Doctoral Consortium and Tool Demonstration Track 2020 colocated with the 2nd International Conference on Process Mining (ICPM</source>
          <year>2020</year>
          ), Padua, Italy, October 4-
          <issue>9</issue>
          ,
          <year>2020</year>
          , volume
          <volume>2703</volume>
          <source>of CEUR Workshop Proceedings, CEUR-WS.org</source>
          ,
          <year>2020</year>
          , pp.
          <fpage>23</fpage>
          -
          <lpage>26</lpage>
          . URL: https://ceur-ws.
          <source>org/</source>
          Vol-
          <volume>2703</volume>
          /paperTD2.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>W. M. P. van der Aalst</surname>
          </string-name>
          ,
          <article-title>Object-centric process mining: Dealing with divergence and convergence in event data</article-title>
          , in: P. C. Ölveczky, G. Salaün (Eds.),
          <source>Software Engineering and Formal Methods - 17th International Conference, SEFM 2019</source>
          , Oslo, Norway,
          <source>September 18-20</source>
          ,
          <year>2019</year>
          , Proceedings, volume
          <volume>11724</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2019</year>
          , pp.
          <fpage>3</fpage>
          -
          <lpage>25</lpage>
          . URL: https://doi.org/10.1007/978-3-
          <fpage>030</fpage>
          -30446-
          <issue>1</issue>
          _1. doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>030</fpage>
          -30446-1\ _1.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>A.</given-names>
            <surname>Burattin</surname>
          </string-name>
          ,
          <article-title>Streaming process mining</article-title>
          , in: W.
          <string-name>
            <surname>M. P. van der Aalst</surname>
          </string-name>
          , J. Carmona (Eds.),
          <source>Process Mining Handbook</source>
          , volume
          <volume>448</volume>
          <source>of Lecture Notes in Business Information Processing</source>
          , Springer,
          <year>2022</year>
          , pp.
          <fpage>349</fpage>
          -
          <lpage>372</lpage>
          . URL: https://doi.org/10.1007/978-3-
          <fpage>031</fpage>
          -08848-3_
          <fpage>11</fpage>
          . doi:
          <volume>10</volume>
          . 1007/978-3-
          <fpage>031</fpage>
          -08848-3\_
          <fpage>11</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <source>[6] Kafka 3</source>
          .6 documentation, https://kafka.apache.org/documentation/,
          <year>2023</year>
          . Accessed:
          <volume>14</volume>
          .
          <fpage>01</fpage>
          .
          <year>2024</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>A. F.</given-names>
            <surname>Ghahfarokhi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Park</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Berti</surname>
          </string-name>
          ,
          <string-name>
            <surname>W. M. P. van der Aalst</surname>
          </string-name>
          ,
          <article-title>OCEL: A standard for object-centric event logs</article-title>
          , in: L.
          <string-name>
            <surname>Bellatreche</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Dumas</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Karras</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Matulevicius</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Awad</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Weidlich</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Ivanovic</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          Hartig (Eds.),
          <source>New Trends in Database and Information Systems - ADBIS 2021 Short Papers, Doctoral Consortium and Workshops: DOING</source>
          ,
          <string-name>
            <surname>SIMPDA</surname>
          </string-name>
          , MADEISD, MegaData, CAoNS, Tartu, Estonia,
          <source>August 24-26</source>
          ,
          <year>2021</year>
          , Proceedings, volume
          <volume>1450</volume>
          of Communications in Computer and Information Science, Springer,
          <year>2021</year>
          , pp.
          <fpage>169</fpage>
          -
          <lpage>175</lpage>
          . URL: https://doi.org/10.1007/978-3-
          <fpage>030</fpage>
          -85082-1_
          <fpage>16</fpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>030</fpage>
          -85082-1\_
          <fpage>16</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>M. B. S.</given-names>
            <surname>Narayana</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Khalifa</surname>
          </string-name>
          ,
          <string-name>
            <surname>W. M. P. van der Aalst</surname>
          </string-name>
          ,
          <article-title>JXES: JSON support for the XES event log standard</article-title>
          , CoRR abs/
          <year>2009</year>
          .06363 (
          <year>2020</year>
          ). URL: https://arxiv.org/abs/
          <year>2009</year>
          .06363. arXiv:
          <year>2009</year>
          .06363.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>G. I.</given-names>
            <surname>Radchenko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. B. A.</given-names>
            <surname>Alaasam</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Tchernykh</surname>
          </string-name>
          ,
          <article-title>Micro-workflows: Kafka and kepler fusion to support digital twins of industrial processes</article-title>
          , in: A.
          <string-name>
            <surname>Sill</surname>
          </string-name>
          , J.
          <source>Spillner (Eds.)</source>
          ,
          <source>2018 IEEE/ACM International Conference on Utility and Cloud Computing Companion, UCC Companion</source>
          <year>2018</year>
          , Zurich, Switzerland,
          <source>December 17-20</source>
          ,
          <year>2018</year>
          , IEEE,
          <year>2018</year>
          , pp.
          <fpage>83</fpage>
          -
          <lpage>88</lpage>
          . URL: https://doi. org/10.1109/UCC-Companion.
          <year>2018</year>
          .
          <volume>00039</volume>
          . doi:
          <volume>10</volume>
          .1109/UCC-COMPANION.
          <year>2018</year>
          .
          <volume>00039</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Mhand</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Boulmakoul</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Badir</surname>
          </string-name>
          ,
          <article-title>Scalable and distributed architecture based on apache spark streaming and prom6 for processing roro terminals logs</article-title>
          ,
          <source>in: Proceedings of the New Challenges in Data Sciences: Acts of the Second Conference of the Moroccan Classification Society</source>
          ,
          <year>2019</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>4</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>A. K. Akanbi</surname>
          </string-name>
          ,
          <article-title>Estemd: A distributed processing framework for environmental monitoring based on apache kafka streaming engine</article-title>
          ,
          <source>CoRR abs/2104</source>
          .01082 (
          <year>2021</year>
          ). URL: https://arxiv. org/abs/2104.01082. arXiv:
          <volume>2104</volume>
          .
          <fpage>01082</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>A. F.</given-names>
            <surname>Nogueira</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. Z.</given-names>
            <surname>Rela</surname>
          </string-name>
          ,
          <article-title>Monitoring a CI/CD workflow using process mining</article-title>
          ,
          <source>SN Comput. Sci. 2</source>
          (
          <year>2021</year>
          )
          <article-title>448</article-title>
          . URL: https://doi.org/10.1007/s42979-021-00830-2. doi:
          <volume>10</volume>
          .1007/ S42979-021-00830-2.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>L.</given-names>
            <surname>Malburg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Grüger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Bergmann</surname>
          </string-name>
          ,
          <article-title>An iot-enriched event log for process mining in smart factories</article-title>
          ,
          <source>CoRR abs/2209</source>
          .02702 (
          <year>2022</year>
          ). URL: https://doi.org/10.48550/arXiv.2209.02702. doi:
          <volume>10</volume>
          .48550/ARXIV.2209.02702. arXiv:
          <volume>2209</volume>
          .
          <fpage>02702</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>N.</given-names>
            <surname>Deehan</surname>
          </string-name>
          ,
          <article-title>Orchestration with camunda and kafka confluent cloud</article-title>
          , https://camunda.com/ blog/2023/11/orchestration-camunda-kafka/,
          <year>2023</year>
          . Accessed:
          <volume>14</volume>
          .
          <fpage>01</fpage>
          .
          <year>2024</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>B.</given-names>
            <surname>Rücker</surname>
          </string-name>
          ,
          <article-title>Process automation and apache kafka</article-title>
          , https://page.camunda.
          <article-title>com/ wp-process-automation-and-apache-</article-title>
          <string-name>
            <surname>kafka</surname>
          </string-name>
          ,
          <year>2022</year>
          . Accessed:
          <volume>14</volume>
          .
          <fpage>01</fpage>
          .
          <year>2024</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>