Quick Links


Office Hours

For reliable meetings, please arrange an appointment via mail.

Dominik Meißner

Dominik Meißner has received a Master diploma cum laude in Computer Science from Ulm University in 2017. They then joined the Institute of Distributed Systems and are currently employed as a research assistant.

Research Interests

  • Distributed Computing
    • Event processing
    • Distribution and parallelization aspects
  • Distributed systems & architectures
    • Event-driven architectures
    • Event sourcing & CQRS
    • Retroaction in event-sourced systems
    • Scalability of architectures
    • Concurrency and parallelism
  • Other Topics
    • Web technologies & web architectures
    • Programming languages and concepts
    • Open data & open educational resources



Bendig, E., Erb, B., Meißner, D., Bauereiß, N. and Baumeister, H. 2021. Feasibility of a Software agent providing a brief Intervention for Self-help to Uplift psychological wellbeing (“SISU”). A single-group pretest-posttest trial investigating the potential of SISU to act as therapeutic agent. Internet Interventions. 24, (2021), 100377.
Background: Software agents are computer-programs that conduct conversations with a human. The present study evaluates the feasibility of the software agent “SISU” aiming to uplift psychological wellbeing. Methods: Within a one-group pretest-posttest trial, N = 30 German-speaking participants were recruited. Assessments took place before (t1), during (t2) and after (t3) the intervention. The ability of SISU to guide participants through the intervention, acceptability, and negative effects were investigated. Data analyses are based on intention-to-treat principles. Linear mixed models will be used to investigate short-term changes over time in mood, depression, anxiety. Intervention: The intervention consists of two sessions. Each session comprises writing tasks on autobiographical negative life events and an Acceptance- and Commitment Therapy-based exercise respectively. Participants interact with the software agent on two consecutive days for about 30 min each. Results: All participants completed all sessions within two days. User experience was positive, with all subscales of the user experience questionnaire (UEQ) M > 0.8. Participants experienced their writings as highly self-relevant and personal. However, 57% of the participants reported at least one negative effect attributed to the intervention. Results on linear mixed models indicate an increase in anxiety over time (β = 1.33, p = .001). Qualitative User Feedback revealed that the best thing about SISU was its innovativeness (13%) and anonymity (13%). As worst thing about SISU participants indicated that the conversational style of SISU often felt unnatural (73%). Conclusion: SISU successfully guided participants through the two-day intervention. Moreover, SISU has the potential to enter the inner world of participants. However, intervention contents have the potential to evoke negative effects in individuals. Expectable short-term symptom deterioration due to writing about negative autobiographical life events could not be prevented by acceptance and commitment therapy-based exercises. Hence, results suggest a revision of intervention contents as well as of the conversational style of SISU. The good adherence rate indicates the useful and acceptable format of SISU as a mental health chatbot. Overall, little is known about the effectiveness of software agents in the context of psychological wellbeing. Results of the present trial underline that the innovative technology bears the potential of SISU to act as therapeutic agent but should not be used with its current intervention content. Trial-registration: The Trial is registered at the WHO International Clinical Trials Registry Platform via the German Clinical Studies Register (DRKS): DRKS00014933 (date of registration: 20.06.2018). Link: https://www.drks.de/drks_web/navigate.do?navigationId=trial.HTML&TRIAL_ID=DRKS00014933.
Meißner, D., Engelmann, F., Kargl, F. and Erb, B. 2021. PeQES: A Platform for Privacy-Enhanced Quantitative Empirical Studies. Proceedings of the 36th Annual ACM Symposium on Applied Computing (Virtual Event, Republic of Korea, 2021), 1226–1234. (acceptance rate: 29%)
Empirical sciences and in particular psychology suffer a methodological crisis due to the non-reproducibility of results, and in rare cases, questionable research practices. Pre-registered studies and the publication of raw data sets have emerged as effective countermeasures. However, this approach represents only a conceptual procedure and may in some cases exacerbate privacy issues associated with data publications. We establish a novel, privacy-enhanced workflow for pre-registered studies. We also introduce PeQES, a corresponding platform that technically enforces the appropriate execution while at the same time protecting the participants' data from unauthorized use or data repurposing. Our PeQES prototype proves the overall feasibility of our privacy-enhanced workflow while introducing only a negligible performance overhead for data acquisition and data analysis of an actual study. Using trusted computing mechanisms, PeQES is the first platform to enable privacy-enhanced studies, to ensure the integrity of study protocols, and to safeguard the confidentiality of participants' data at the same time.
Meißner, D., Kargl, F. and Erb, B. 2021. WAIT: Protecting the Integrity of Web Applications with Binary-Equivalent Transparency. Proceedings of the 36th Annual ACM Symposium on Applied Computing (Virtual Event, Republic of Korea, 2021), 1950–1953. (acceptance rate: 29%)
Modern single page web applications require client-side executions of application logic, including critical functionality such as client-side cryptography. Existing mechanisms such as TLS and Subresource Integrity secure the communication and provide external resource integrity. However, the browser is unaware of modifications to the client-side application as provided by the server and the user remains vulnerable against malicious modifications carried out on the server side. Our solution makes such modifications transparent and empowers the browser to validate the integrity of a web application based on a publicly verifiable log. Our Web Application Integrity Transparency (WAIT) approach requires (1) an extension for browsers for local integrity validations, (2) a custom HTTP header for web servers that host the application, and (3) public log servers that serve the verifiable logs. With WAIT, the browser can disallow the execution of undisclosed application changes. Also, web application providers cannot dispute their authorship for published modifications anymore. Although our approach cannot prevent every conceivable attack on client-side web application integrity, it introduces a novel sense of transparency for users and an increased level of accountability for application providers particularly effective against targeted insider attacks.


Erb, B., Meißner, D., Kargl, F., Steer, B.A., Cuadrado, F., Margan, D. and Pietzuch, P. 2018. Graphtides: A Framework for Evaluating Stream-Based Graph Processing Platforms. Proceedings of the 1st ACM SIGMOD Joint International Workshop on Graph Data Management Experiences & Systems (GRADES) and Network Data Analytics (NDA) (Houston, Texas, 2018). (acceptance rate: 38%)
Stream-based graph systems continuously ingest graph-changing events via an established input stream, performing the required computation on the corresponding graph. While there are various benchmarking and evaluation approaches for traditional, batch-oriented graph processing systems, there are no common procedures for evaluating stream-based graph systems. We, therefore, present GraphTides, a generic framework which includes the definition of an appropriate system model, an exploration of the parameter space, suitable workloads, and computations required for evaluating such systems. Furthermore, we propose a methodology and provide an architecture for running experimental evaluations. With our framework, we hope to systematically support system development, performance measurements, engineering, and comparisons of stream-based graph systems.
Erb, B., Meißner, D., Ogger, F. and Kargl, F. 2018. Log Pruning in Distributed Event-sourced Systems. Proceedings of the 12th ACM International Conference on Distributed and Event-based Systems (New York, NY, USA, 2018), 230–233. (acceptance rate: 39%)
Event sourcing is increasingly used and implemented in event-based systems for maintaining the evolution of application state. However, unbounded event logs are impracticable for many systems, as it is difficult to align scalability requirements and long-term runtime behavior with the corresponding storage requirements. To this end, we explore the design space of log pruning approaches suitable for event-sourced systems. Furthermore, we survey specific log pruning mechanisms for event-sourced logs. In a brief evaluation, we point out the trade-offs when applying pruning to event logs and highlight the applicability of log pruning to event-sourced systems.
Meißner, D., Erb, B. and Kargl, F. 2018. Performance Engineering in Distributed Event-sourced Systems. Proceedings of the 12th ACM International Conference on Distributed and Event-based Systems (New York, NY, USA, 2018), 242–245. (acceptance rate: 39%)
Distributed event-sourced systems adopt a fairly new architectural style for data-intensive applications that maintains the full history of the application state. However, the performance implications of such systems are not yet well explored, let alone how the performance of these systems can be improved. A central issue is the lack of systematic performance engineering approaches that take into account the specific characteristics of these systems. To address this problem, we suggest a methodology for performance engineering and performance analysis of distributed event-sourced systems based on specific measurements and subsequent, targeted optimizations. The methodology blends in well into existing software engineering processes and helps developers to identify bottlenecks and to resolve performance issues. Using our structured approach, we improved an existing event-sourced system prototype and increased its performance considerably.
Meißner, D., Erb, B., Kargl, F. and Tichy, M. 2018. retro-λ: An Event-sourced Platform for Serverless Applications with Retroactive Computing Support. Proceedings of the 12th ACM International Conference on Distributed and Event-based Systems (New York, NY, USA, 2018), 76–87. (acceptance rate: 39%)
State changes over time are inherent characteristics of stateful applications. So far, there are almost no attempts to make the past application history programmatically accessible or even modifiable. This is primarily due to the complexity of temporal changes and a difficult alignment with prevalent programming primitives and persistence strategies. Retroactive computing enables powerful capabilities though, including computations and predictions of alternate application timelines, post-hoc bug fixes, or retroactive state explorations. We propose an event-driven programming model that is oriented towards serverless computing and applies retroaction to the event sourcing paradigm. Our model is deliberately restrictive, but therefore keeps the complexity of retroactive operations in check. We introduce retro-λ, a runtime platform that implements the model and provides retroactive capabilites to its applications. While retro-λ only shows negligible performance overheads compared to similar solutions for running regular applications, it enables its users to execute retroactive computations on the application histories as part of its programming model.
Meißner, D. 2018. Towards Time Travel in Distributed Event-Sourced Systems. Proceedings of the 12th ACM International Conference on Distributed and Event-Based Systems (Hamilton, New Zealand, 2018), 266–269.
Stateful applications are based on the state they hold and how it changes over time. This history of state changes is usually discarded as the application progresses. By building on concepts from event processing and storing the application history we envision a novel programming paradigm that supports retroaction. Retroactive computing introduces new opportunities for a developer to access and even modify an application timeline. By enabling the exploration of alternative scenarios, retroactive computing establishes powerful new ways to debug systems and introduces new approaches to solve problems. Initial work has shown the practicality and possibilities of this new programming paradigm and introduces further research questions and challenges.


Erb, B., Meißner, D., Pietron, J. and Kargl, F. 2017. Chronograph: A Distributed Processing Platform for Online and Batch Computations on Event-sourced Graphs. Proceedings of the 11th ACM International Conference on Distributed and Event-Based Systems (New York, NY, USA, 2017), 78–87. (acceptance rate: 37%)
Several data-intensive applications take streams of events as a continuous input and internally map events onto a dynamic, graph-based data model which is then used for processing. The differences between event processing, graph computing, as well as batch processing and near-realtime processing yield a number of specific requirements for computing platforms that try to unify theses approaches. By combining an altered actor model, an event-sourced persistence layer, and a vertex-based, asynchronous programming model, we propose a distributed computing platform that supports event-driven, graph-based applications in a single platform. Our Chronograph platform concept enables online and offline computations on event-driven, history-aware graphs and supports different processing models on the evolving graph.
Erb, B., Meißner, D., Habiger, G., Pietron, J. and Kargl, F. 2017. Consistent Retrospective Snapshots in Distributed Event-sourced Systems. Conference on Networked Systems (NetSys’17) (Göttingen, Germany, Mar. 2017).
An increasing number of distributed, event-based systems adopt an architectural style called event sourcing, in which entities keep their entire history in an event log. Event sourcing enables data lineage and allows entities to rebuild any previous state. Restoring previous application states is a straight-forward task in event-sourced systems with a global and totally ordered event log. However, the extraction of causally consistent snapshots from distributed, individual event logs is rendered non-trivial due to causal relationships between communicating entities. High dynamicity of entities increases the complexity of such reconstructions even more. We present approaches for retrospective and global state extraction of event-sourced applications based on distributed event logs. We provide an overview on historical approaches towards distributed debugging and breakpointing, which are closely related to event log-based state reconstruction. We then introduce and evaluate our approach for non-local state extraction from distributed event logs, which is specifically adapted for dynamic and asynchronous event-sourced systems.


Meißner, D., Erb, B., van der Heijden, R., Lange, K. and Kargl, F. 2016. Mobile triage management in disaster area networks using decentralized replication. Proceedings of the Eleventh ACM Workshop on Challenged Networks (2016), 7–12. (acceptance rate: 52%)
In large-scale disaster scenarios, efficient triage management is a major challenge for emergency services. Rescue forces traditionally respond to such incidents with a paper-based triage system, but technical solutions can potentially achieve improved usability and data availability. We develop a triage management system based on commodity hardware and software components to verify this claim. We use a single-hop, ad-hoc network architecture with multi-master replication, a tablet-based device setup, and a mobile application for emergency services. We study our system in cooperation with regional emergency services and report on experiences from a field exercise. We show that state-of-the-art commodity technology provides the means necessary to implement a triage management system compatible with existing emergency service procedures, while introducing additional benefits. This work highlights that powerful real-world ad-hoc networking applications do not require unreasonable development effort, as existing tools from distributed systems, such as replicating NoSQL databases, can be used successfully.

Student Theses and Individual Student Projects

Bachelor/Master Theses

The section lists open and finished topics for theses. More topics for Bachelor/Master theses are available on the thesis website of the institute.

I am also accepting own topics that relate to my fields of interests. Please get in touch for suggestions.

Master Projects

I provide a number of  individual master projects that are related to my field of research. Several student thesis topics can also be worked on as part of a master project.

Most projects can be conducted as 8 LP or 16 LP projects, depending on the focus and extent of the topic.

For more details, please get in touch with me.

Office Hours

For reliable meetings, please arrange an appointment via mail.

Open Topics

“Test-based Validation of Network Programming Tasks,” Project, D. Meißner (Supervisor), F. Kargl (Examiner), Inst. of Distr. Sys., Ulm Univ., 2021 – Open.
We have a collection of Java programming tasks as part of our introduction to computer networks course. In these programming tasks students are instructed to implement network applications matching a strict set of rules. The goal of this project is to implement a rule-based testing framework to aid the grading of such programming tasks and providing immediate feedback to students whether their implementation is correct or not.

Supervised Topics

“Modern Deployment Approaches for Web Applications,” Project, D. Meißner (Supervisor), F. Kargl (Examiner), Inst. of Distr. Sys., Ulm Univ., 2021 – Taken.
The deployment process of web applications has changed a lot over the recent years. Manual administration of infrastructure has been streamlined by provisioning tools, such as Ansible, and application deployment has been revolutionized by DevOps practices and orchestration systems, such as Kubernetes. However, these advances often hide a lot of complexity and require a lot of expertise to apply correctly. As part of this work, you should research and compare different approaches to deploy a typical modern three-tier web application (e.g., Vue, Node.js, PostgreSQL). Furthermore, a demo application should be deployed using the researched continuous integration and continuous delivery methods, with special consideration of monitoring, backups, and application upgrades.
“Porting a Statistics Language Interpreter to Rust,” Project, D. Meißner (Supervisor), Inst. of Distr. Sys., Ulm Univ., 2020 – Taken.
As part of our ongoing research, we are currently building a platform for secure statistical analysis based on SGX. The current prototype relies on a very simple statistics language, which we are planning to extend in the future. The goal of this project is to port an existing statistics language interpreter, such as PSPP, to the Rust programming language. Rust features a rich type system and can guarantee memory-safety and thread-safety during compile time, which makes it a great candidate for building safe and fast programming language interpreters. nom is a parser combinators library written in Rust that allows to build safe parsers without compromising on speed or memory consumption. This library can be used as a starting point to implement the parser.
N. Maier, “Privacy In Statistical Computations,” Master's thesis VS-2020-12M, D. Meißner (Supervisor), F. Kargl (Examiner), Inst. of Distr. Sys., Ulm Univ., 2020 – Completed.
In human science research, maintaining the privacy of research participant is of utmost importance as studies often collect highly sensitive data about individuals. However, most universal guidelines such as the APA code of conduct only state very broad requirements such as a "primary obligation [to] take reasonable precautions to protect confidential information". Additionally, the prevalence of other forms of research misconduct such as authorship fraud raises the question whether research participants can trust researchers to properly handle their data. To increase trust and improve the privacy of research participants, we propose a system that enforces rigorous privacy guarantees on research results. In this thesis, we focus on identifying possible privacy mechanisms which could be applied to statistical analyses as part of social science research and yield strong - and ideally easy to understand - privacy guarantees.
S. Merkel, “Web Content Integrity Protection,” Master's thesis VS-2020-13M, D. Meißner (Supervisor), F. Kargl and F. J. Hauck (Examiner), Inst. of Distr. Sys., Ulm Univ., 2020 – Completed.
Web clients can not determine whether they have been delivered the same version of a web application as the rest of the world, which allows a web server to deliver manipulated content to specific users, allowing them to bypass implemented functionality or inject other malicious behavior. For example, a malicious web application provider who offers a web application with end-to-end encryption functionality can deliver a manipulated implementation of the encryption mechanism to targeted users and obtain access to otherwise unreadable messages or secret keys. The thesis introduces a concept to authenticate web applications and thus prevent covert attacks by web application providers through different resource versions on individual users. Previous work has created more transparency in resource management, but still allows the use of different resource versions, violates privacy, or is based on a trust model without verification possibilities. The developed concept is based on a verifiable trust model, where all users accept only the same resource version, forcing web application providers to offer the correct web application or increasing the risk for malicious web operators of detecting their manipulated resources. Two different approaches for the verifiable trust model were designed based on available mechanisms and implemented and evaluated in proof-of-concept prototypes. By using the developed concept, web application providers are able to deliver an authenticated web application and thus provide functionality to all users in a trustworthy manner, while at the same time increasing the probability to catch malicious web application providers.
“Causality-aware Log Pruning in Distributed event-sourced Systems,” individual lab project VS-P21-2019, B. Erb and D. Meißner (Supervisor), F. Kargl (Examiner), Inst. f. Vert. Sys., Univ. Ulm, 2019 – Completed.
J. Hutter, “Web-based Interface for a Programmable Chatbot,” Bachelor's thesis, D. Meißner (Supervisor), F. Kargl (Examiner), Inst. of Distr. Sys., Ulm Univ., 2019 – Completed.
Gemeinsam mit Abteilungen aus der Psychologie wird am Institut für Verteilte Systeme ein programmierbarer Chatbot entwickelt, der insbesondere für Studien und Experimente eingesetzt werden soll. Der derzeitige Prototyp erfordert eine Programmierung der Zustandsautomaten des Bots in Java. Dies ist vor allem für Personen ohne Programmierhintergrund eine große Hürde bei der Gestaltung von Dialog-Skripten. In dieser Abschlussarbeit soll hierfür eine webbasierte Oberfläche entwickelt werden, die eine grafische Erstellung von Chatbot-basierten Studien ermöglicht. Im Rahmen der Arbeit soll zunächst ein überblick über bestehende Tools und Formate erarbeitet werden. Anschließend soll der Funktionsumfang des Bots in einer interaktiven Web-Anwendung abgebildet werden. Die so modellierten Dialoge sollen schließlich in code-basierte Zustandsautomaten zur Ausführung in der Bot-Plattform trans-formiert werden.
A. Kononenko, “Blockchain Analysis with Chronograph,” Bachelor's thesis, D. Meißner (Supervisor), F. Kargl (Examiner), Inst. of Distr. Sys., Ulm Univ., 2018 – Completed.
Blockchain technology allows for decentralized, distributed, and secure ledgers that store records (e.g., transactions). Popular blockchain-based systems such as Bitcoin and Etherum have emerged as so-called crypto-currencies. As the ledger maintains the full history of transactions, interactions within the system are always persisted. In this work, the student is asked to design and implement online and offline transaction analyses based on Chronograph, a data processing platform for evolving graphs developed at our Institute. Therefore, different blockchain-based systems should be surveyed and appropriate analysis mechanisms should be conducted.
“Bringing Height to the Chronograph Platform,” individual lab project VS-R08-2018, B. Erb and D. Meißner (Supervisor), F. Kargl (Examiner), Inst. f. Vert. Sys., Univ. Ulm, 2018 – Completed.
M. Diemer, “Dependency Tracking in Distributed Retroactive Applications,” Bachelor's thesis, D. Meißner (Supervisor), F. Kargl (Examiner), Inst. of Distr. Sys., Ulm Univ., 2018 – Completed.
Retroactive computing enables programmatical access to the history of an application. This offers a variety of capabilities, such as computations and predictions of alternate application timelines, post-hoc bug fixes, and retroactive state explorations. Reads and writes of the application state have to be tracked and persisted in order to support retroaction. This is fairly simple for a single-writer append-only log, but entails various issues in a distributed setting. This thesis/project should explore different approaches for a distributed dependency tracking, including a prototypical implementation based on an existing platform prototype and an evaluation of the resulting artifacts.
“Event-Sourced Graph Processing in Internet of Things Scenarios,” Master's thesis VS-M03-2018, B. Erb and D. Meißner (Supervisor), F. Kargl (Examiner), Inst. of Distr. Sys., Ulm Univ., 2018 – Completed.
“Online Text Processing for Chatting Applications,” Bachelor's thesis VS-B19-2018, D. Meißner and B. Erb (Supervisor), F. Kargl (Examiner), Inst. of Distr. Sys., Ulm Univ., 2018 – Completed.
“Revisited: A platform architecture for retroactive programming using event sourcing,” individual lab project VS-R07-2018, B. Erb and D. Meißner (Supervisor), F. Kargl (Examiner), Inst. f. Vert. Sys., Univ. Ulm, 2018 – Completed.
“A platform architecture for retroactive programming using event sourcing,” individual lab project VS-R23-2017, B. Erb and D. Meißner (Supervisor), F. Kargl (Examiner), Inst. f. Vert. Sys., Univ. Ulm, 2017 – Completed.


Current Teaching

  • Introduction to Computer Networks (GRN)
  • Architectures for Distributed Internet Services (ADIS)
  • Privacy in the Internet (PRIV)
  • Selected Topics in Distributed Systems (ATVS)
  • Research Trends in Distributed Systems (RTDS)
  • Computer Networks and IT-Security (RNSEC)

Lab Courses

Seminars and Student Projects


Currently Supervised Seminar Courses

  • Privacy in the Internet (PRIV)
  • Selected Topics in Distributed Systems (ATVS)
  • Research Trends in Distributed Systems (RTDS)

Office Hours

For reliable meetings, please arrange an appointment via mail.

Current Topics

  • State of the Art of Web Application Security (Seminar ATVS/RTDS; Summer Term 2021)
  • DevOps Monitoring using Grafana and Prometheus (Seminar ATVS/RTDS; Summer Term 2021)

Previous Topics

  • State of the Art of Web Application Security (Seminar ATVS/RTDS; Winter Term 2020/2021)
  • Trusted Execution Environments (Seminar ATVS/RTDS; Winter Term 2020/2021)
  • State of the Art of Web Application Security (Seminar ATVS/RTDS; Summer Term 2020)
  • Trusted Execution Environments (Seminar ATVS/RTDS; Summer Term 2020)
  • Doxxing als Angriff auf die Privacy (Proseminar PRIV; Summer Term 2020)
  • Trusted Execution Environments (Seminar ATVS/RTDS; Winter Term 2019/2020)
  • Serverless Computing (Seminar ATVS/RTDS; Summer Term 2019)
  • Distributed Causality Tracking (Seminar ATVS/RTDS; Winter Term 2018/2019)
  • GDPR: Theorie und Praxis (Proseminar PRIV; Winter Term 2018/2019)
  • Machine Learning on Event Streams (Seminar ATVS; Summer Term 2018)
  • Networking in Online Multiplayer Games (Seminar ATVS; Winter Term 2017/2018)
  • Privacy in Instant Messaging Anwendungen (Proseminar PRIV; Winter Term 2017/2018)