<script src="https://bibbase.org/show?bib=https%3A%2F%2Frnlaigner.github.io%2Fpublications%2FLaignerPapers2.3.bib&jsonp=1"></script>
<?php
$contents = file_get_contents("https://bibbase.org/show?bib=https%3A%2F%2Frnlaigner.github.io%2Fpublications%2FLaignerPapers2.3.bib");
print_r($contents);
?>
<iframe src="https://bibbase.org/show?bib=https%3A%2F%2Frnlaigner.github.io%2Fpublications%2FLaignerPapers2.3.bib"></iframe>
For more details see the documention.
To the site owner:
Action required! Mendeley is changing its API. In order to keep using Mendeley with BibBase past April 14th, you need to:
@inproceedings{virtual-ms, author = {Rodrigo Laigner and Yongluan Zhou and Marcos Antonio Vaz Salles}, booktitle = {The 15th ACM International Conference on Distributed and Event-based Systems (DEBS '21), June 28-July 2, 2021, Virtual Event, Italy}, publisher = {Association for Computing Machinery}, title = {A Distributed Database System for Event-based Microservices}, series = {DEBS '21}, year = {2021}, pages={25–30}, doi={10.1145/3465480.3466919}, abstract = {Microservice architectures are an emerging industrial approach to build large scale and event-based systems. In this architectural style, an application is functionally partitioned into several small and autonomous building blocks, so-called microservices, communicating and exchanging data with each other via events. By pursuing a model where fault isolation is enforced at microservice level, each microservice manages their own database, thus database systems are not shared across microservices. Developers end up encoding substantial data management logic in the application-tier and encountering a series of challenges on enforcing data integrity and maintaining data consistency across microservices. In this vision paper, we argue that there is a need to rethink how database systems can better support microservices and relieve the burden of handling complex data management tasks faced by programmers. We envision the design and research opportunities for a novel distributed database management system targeted at event-driven microservices.}, url = {https://www.researchgate.net/publication/352020135_A_Distributed_Database_System_for_Event-based_Microservices} }
@inproceedings{streamconstraints, author = {Anna Lesniak and Rodrigo Laigner and Yongluan Zhou}, booktitle = {The 15th ACM International Conference on Distributed and Event-based Systems (DEBS '21), June 28-July 2, 2021, Virtual Event, Italy}, publisher = {Association for Computing Machinery}, title = {Enforcing Consistency in Microservice Architectures through Event-based Constraints}, series = {DEBS '21}, year = {2021}, pages={180–183}, doi={10.1145/3465480.3467839}, abstract = {Microservice architectures are an emerging paradigm for developing event-driven applications. By prescribing that an application is decomposed into small and independent components, each encapsulating its own state and communicating via asynchronous events, new components and events can be easily integrated into the system. However, by pursuing a model where events are generated and processed at the application-level, developers have a hard time to safeguard arbitrary event interleavings from doing harm to application safety. To address these challenges, we start by analyzing event-driven microservice open-source applications to identify unsafe interleavings. Next, we categorize event-based constraints to address such unsafe encodings, providing an easy-to-use guide for microservice developers. Finally, we introduce StreamConstraints, a library built on top of Kafka Streams designed to enforce explicit event-based constraints defined by developers. We showcase StreamConstraints based on the case of a popular event-driven microservice system, and demonstrate how it could benefit from event-based constraints to ensure application safety.}, url = {https://www.researchgate.net/publication/352019905_Enforcing_Consistency_in_Microservice_Architectures_through_Event-based_Constraints} }
@inproceedings{HawkEDA, author = {Prangshuman Das and Rodrigo Laigner and Yongluan Zhou}, booktitle = {The 15th ACM International Conference on Distributed and Event-based Systems (DEBS '21), June 28-July 2, 2021, Virtual Event, Italy}, isbn = {9781450385558}, publisher = {Association for Computing Machinery}, title = {HawkEDA : A Tool for Quantifying Data Integrity Violations in Event-driven Microservices}, series = {DEBS '21}, year = {2021}, pages={176–179}, doi={10.1145/3465480.3467838}, abstract = {A microservice architecture advocates for subdividing an application into small and independent components, each communicating via well-defined APIs or asynchronous events, to allow for higher scalability, availability, and fault isolation. However, the implementation of substantial amount of data management logic at the application-tier and the existence of functional dependencies cutting across microservices create a great barrier for developers to reason about application safety and performance trade-offs. To fill this gap, this work presents HawkEDA, the first data management tool that allows practitioners to experiment their microservice applications with different real-world workloads to quantify the amount of data integrity anomalies. In our demonstration, we present a case study of a popular open-source event-driven microservice to showcase the interface through which developers specify application semantics and the flexibility of HawkEDA.}, url = {https://www.researchgate.net/publication/352020105_HawkEDA_A_Tool_for_Quantifying_Data_Integrity_Violations_in_Event-driven_Microservices} }
@ARTICLE{LaignerEtAl21, author={Rodrigo Laigner and Yongluan Zhou and Marcos Antonio Vaz Salles and Yijian Liu and Marcos Kalinowski}, journal={Proceedings of the VLDB Endowment}, title={Data Management in Microservices: State of the Practice, Challenges, and Research Directions}, year={2021}, volume={14}, number={13}, pages={3348-3361}, abstract={Microservices have become a popular architectural style for data-driven applications, given their ability to functionally decompose an application into small and autonomous services to achieve scalability, strong isolation, and specialization of database systems to the workloads and data formats of each service. Despite the accelerating industrial adoption of this architectural style, an investigation of the state of the practice and challenges practitioners face regarding data management in microservices is lacking. To bridge this gap, we conducted a systematic literature review of representative articles reporting the adoption of microservices, we analyzed a set of popular open-source microservice applications, and we conducted an online survey to cross-validate the findings of the previous steps with the perceptions and experiences of over 120 experienced practitioners and researchers. Through this process, we were able to categorize the state of practice of data management in microservices and observe several foundational challenges that cannot be solved by software engineering practices alone, but rather require system-level support to alleviate the burden imposed on practitioners. We discuss the shortcomings of state-of-the-art database systems regarding microservices and we conclude by devising a set of features for microservice-oriented database systems.}, url = {http://www.vldb.org/pvldb/vol14/p3348-laigner.pdf}, doi={10.14778/3484224.3484232} }
@techreport{extended, title={Data Management in Microservices: State of the Practice, Challenges, and Research Directions}, author={Rodrigo Laigner and Yongluan Zhou and Marcos Antonio Vaz Salles and Yijian Liu and Marcos Kalinowski}, year={2021}, type = {WorkingPaper}, abstract = {We are recently witnessing an increased adoption of microservice architectures by the industry for achieving scalability by functional decomposition, fault-tolerance by deployment of small and independent services, and polyglot persistence by the adoption of different database technologies specific to the needs of each service. Despite the accelerating industrial adoption and the extensive research on microservices, there is a lack of thorough investigation on the state of the practice and the major challenges faced by practitioners with regard to data management. To bridge this gap, this paper presents a detailed investigation of data management in microservices. Our exploratory study is based on the following methodology: (i) we conducted a systematic literature review of articles reporting the adoption of microservices in industry settings, where more than 300 articles were filtered down to 11 representative studies; (ii) we analyzed a set of 9 popular open-source microservice-based applications, selected out of more than 20 open-source projects; furthermore, (iii) to strengthen our evidence, we conducted an online survey that we then used to cross-validate the findings of the previous steps with the perceptions and experiences of over 120 practitioners and researchers. Through this process, we were able to categorize the state of practice and reveal several principled challenges that cannot be solved by software engineering practices, but rather need system-level support to alleviate the burden of practitioners. Based on the observations we also identified a series of research directions to achieve this goal. Fundamentally, novel database systems and data management tools that support isolation for microservices, which include fault isolation, performance isolation, data ownership, and independent schema evolution across microservices must be built to address the needs of this growing architectural style.}, note={<font color="red">Preliminar version of paper accepted for publication at VLDB '21.</font>}, url = {https://www.researchgate.net/publication/349704597_Data_Management_in_Microservices_State_of_the_Practice_Challenges_and_Research_Directions} }
@article{LAIGNER2021111125, title = {Cataloging dependency injection anti-patterns in software systems}, journal = {Journal of Systems and Software}, pages = {111125}, year = {2021}, issn = {0164-1212}, doi = {https://doi.org/10.1016/j.jss.2021.111125}, url = {https://www.sciencedirect.com/science/article/pii/S0164121221002223}, author = {Rodrigo Laigner and Diogo Mendonça and Alessandro Garcia and Marcos Kalinowski}, keywords = {Dependency injection, Dependency inversion, Inversion of control, Anti-pattern}, abstract = {Context: Dependency Injection (DI) is a commonly applied mechanism to decouple classes from their dependencies in order to provide higher modularization. However, bad DI practices often lead to negative consequences, such as increasing coupling. Although white literature conjectures about the existence of DI anti-patterns, there is no evidence on their practical relevance, usefulness, and generality. Objective: The objective of this study is to propose and evaluate a catalog of DI anti-patterns and associated refactorings. Methodology: We reviewed existing reported DI anti-patterns in order to analyze their completeness. The limitations found in literature motivated proposing a novel catalog of 12 DI anti-patterns. We developed a tool to statically analyze the occurrence level of the candidate DI anti-patterns in both open-source and industry projects. Next, we survey practitioners to assess their perception on the relevance, usefulness, and their willingness on refactoring anti-pattern instances of the catalog. Results: Our static code analyzer tool showed a relative recall of 92.19% and high average precision. It revealed that at least 9 different DI anti-patterns appeared frequently in the analyzed projects. Besides, our survey confirmed the perceived relevance of the catalog and developers expressed their willingness to refactor instances of anti-patterns from source code. Conclusion: The catalog contains DI anti-patterns that occur in practice and that are perceived as useful. Sharing it with practitioners may help them to avoid such anti-patterns, thus improving source-code quality.} }
@inproceedings{LaignerKLSO20, author = {Rodrigo Laigner and Marcos Kalinowski and Pedro Diniz and Leonardo Barros and Carlos Cassino and Melissa Lemos and Darlan Arruda and Sergio Lifschitz and Yongluan Zhou}, title = {From a Monolithic Big Data System to a Microservices Event-Driven Architecture}, abstract = {[Context] Data-intensive systems, a.k.a. big data systems (BDS), are software systems that handle a large volume of data in the presence of performance quality attributes, such as scalability and availability. Before the advent of big data management systems (e.g. Cassandra) and frameworks (e.g. Spark), organizations had to cope with large data volumes with custom-tailored solutions. In particular, a decade ago, Tecgraf/PUC-Rio developed a system to monitor truck fleet in real-time and proactively detect events from the positioning data received. Over the years, the system evolved into a complex and large obsolescent code base involving a hard maintenance process. [Goal] We report our experience on replacing a legacy BDS with a microservice-based event-driven system. [Method] We applied action research, investigating the reasons that motivate the adoption of a microservice-based event-driven architecture, intervening to define the new architecture, and documenting the challenges and lessons learned. [Results] We perceived that the resulting architecture enabled easier maintenance and fault-isolation. However, the myriad of technologies and the complex data flow were perceived as drawbacks. Based on the challenges faced, we highlight opportunities to improve the design of big data reactive systems. [Conclusions] We believe that our experience provides helpful takeaways for practitioners modernizing systems with data-intensive requirements.}, booktitle = {46th Euromicro Conference on Software Engineering and Advanced Applications, {SEAA} 2020, Portorož, Slovenia, Aug 26-28}, year = {2020}, pages={213-220}, doi={10.1109/SEAA51224.2020.00045}, url = {https://www.researchgate.net/publication/341822188_From_a_Monolithic_Big_Data_System_to_a_Microservices_Event-Driven_Architecture} }
@inproceedings{LaignerKLSO18, author = {Rodrigo Laigner and Marcos Kalinowski and Sergio Lifschitz and Rodrigo Salvador and Daniel de Oliveira}, title = {A Systematic Mapping of Software Engineering Approaches to Develop Big Data Systems}, abstract = {[Context] Data is being collected at an unprecedented scale. Data sets are becoming so large and complex that traditionally engineered systems may be inadequate to deal with them. While software engineering comprises a large set of approaches to support engineering robust software systems, there is no comprehensive overview of approaches that have been proposed and/or applied in the context of engineering big data systems. [Goal] This study aims at surveying existing research on big data software engineering to unveil and characterize the development approaches and major contributions. [Method] We conducted a systematic mapping study, identifying 52 related research papers, dated from 2011 to 2016. We classified and analyzed the identified approaches, their objectives, application domains, development lifecycle phase, and type of contribution. [Results] As a result, we outline the current state of the art and gaps on employing software engineering approaches to develop big data systems. For instance, we observed that the major challenges are in the area of software architecture and that more experimentation is needed to assess the classified approaches. [Conclusion] The results of this systematic mapping provide an overview on existing approaches to support building big data systems and helps to steer future research based on the identified gaps.}, booktitle = {44th Euromicro Conference on Software Engineering and Advanced Applications, {SEAA} 2018, Prague, Czech Republic, Aug 29-31}, pages = {446--453}, year = {2018}, url = {https://www.researchgate.net/publication/326607927_A_Systematic_Mapping_of_Software_Engineering_Approaches_to_Develop_Big_Data_Systems}, doi = {10.1109/SEAA.2018.00079}, }