Online Marketplace: A Benchmark for Data Management in Microservices (2403.12605v4)
Abstract: Microservice architectures have become a popular approach for designing scalable distributed applications. Despite their extensive use in industrial settings for over a decade, there is limited understanding of the data management challenges that arise in these applications. Consequently, it has been difficult to advance data system technologies that effectively support microservice applications. To fill this gap, we present Online Marketplace, a microservice benchmark that highlights core data management challenges that existing benchmarks fail to address. These challenges include transaction processing, query processing, event processing, constraint enforcement, and data replication. We have defined criteria for various data management issues to enable proper comparison across data systems and platforms. Through case studies with state-of-the-art data platforms, we discuss the issues encountered while implementing and meeting Online Marketplace's criteria. By capturing the overhead of meeting the key data management requirements that are overlooked by existing benchmarks, we gain actionable insights into the experimental platforms. This highlights the significance of Online Marketplace in advancing future data systems to meet the needs of microservice practitioners.
- Materialize [n.d.]. Materialize: The Operational Data Warehouse. Materialize. Retrieved December 12, 2023 from https://materialize.com
- 2018. InconsistentStateException with ADO.NET SQL Server grain storage. Retrieved November 25, 2023 from https://github.com/dotnet/orleans/issues/4697#issuecomment-398556401
- DuckDB 2024. DuckDB. DuckDB. Retrieved April 12, 2024 from https://github.com/duckdb
- Delta: A Data Synchronization and Enrichment Platform. Netflix. Retrieved April 8, 2024 from https://netflixtechblog.com/delta-a-data-synchronization-and-enrichment-platform-e82c36a79aee
- Linear Road: A Stream Data Management Benchmark. In Proceedings of the Thirtieth International Conference on Very Large Data Bases - Volume 30 (Toronto, Canada) (VLDB ’04). VLDB Endowment, 480–491.
- BroadleafCommerce. [n.d.]. Broadleaf Microservices Architecture. Broadleaf Commerce. Retrieved March 24, 2024 from https://www.broadleafcommerce.com/product/microservice-architecture
- Orleans: A Framework for Cloud Computing. Technical Report MSR-TR-2010-159. https://www.microsoft.com/en-us/research/publication/orleans-a-framework-for-cloud-computing/
- Marcus Cavalcanti. 2020. Lessons learned about running Microservices. B2W. Retrieved April 8, 2024 from https://medium.com/b2w-engineering-en/lessons-learned-about-running-microservices-a51d952cb50b
- Brian Chavez. 2024. Bogus. Microsoft. Retrieved April 8, 2024 from https://github.com/bchavez/Bogus Bogus is fundamentally a C# port of faker.js and inspired by FluentValidation’s syntax sugar.
- Jon Chew. 2019. Avoiding Double Payments in a Distributed Payments System. AirBnb. Retrieved April 8, 2024 from https://medium.com/airbnb-engineering/avoiding-double-payments-in-a-distributed-payments-system-2981f6b070bb
- Dmitry Chornyi. 2018. Engineering Uber’s Next-Gen Payments Platform. Uber Technologies Inc. Retrieved April 8, 2024 from https://eng.uber.com/payments-platform
- Dan Conger. 2021. How Apache Kafka Enables Podium to “Ship It and See What Happens”. Confluent. Retrieved April 8, 2024 from https://www.confluent.io/blog/how-apache-kafka-enables-podium-to-ship-it-and-see-what-happens
- Benchmarking Cloud Serving Systems with YCSB. In Proceedings of the 1st ACM Symposium on Cloud Computing (Indianapolis, Indiana, USA) (SoCC ’10). Association for Computing Machinery, New York, NY, USA, 143–154. https://doi.org/10.1145/1807128.1807152
- TPC Council. 2005. TPC-W: Benchmarking An Ecommerce Solution. https://www.tpc.org/tpcw/tpc-w_wh.pdf Revision 1.2.
- TPC Council. 2010. TPC Benchmark C revision. https://www.tpc.org/tpcc Revision 5.11.
- Datadog. [n.d.]. What Is Audit Logging? Retrieved November 20, 2023 from https://www.datadoghq.com/knowledge-center/audit-logging/#audit-logs-vs-regular-system-logs
- Stephan Ewen. 2020. Stateful Functions 2.0 - An Event-driven Database on Apache Flink. Retrieved November 25, 2023 from https://flink.apache.org/2020/04/07/stateful-functions-2.0-an-event-driven-database-on-apache-flink
- Rafael Ferreira. 2019. Microservices at Nubank, an overview. Nubank. Retrieved April 8, 2024 from https://building.nubank.com.br/microservices-at-nubank-an-overview
- Rafael Ferreira and Edward Wible. 2017. Architecting a Modern Financial Institution. Nubank. Retrieved April 8, 2024 from https://www.infoq.com/presentations/nubank-architecture
- Martin Fowler. 2017. What do you mean by “Event-Driven”? Retrieved November, 1st 2023 from https://martinfowler.com/articles/201701-event-driven.html
- An open-source benchmark suite for microservices and their hardware-software implications for cloud & edge systems. In Proceedings of the Twenty-Fourth International Conference on Architectural Support for Programming Languages and Operating Systems. 3–18.
- Seth Gilbert and Nancy Lynch. 2002. Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services. SIGACT News 33, 2 (jun 2002), 51–59. https://doi.org/10.1145/564585.564601
- Adam Gluck. 2022. Introducing Domain-Oriented Microservice Architecture. Uber Technologies Inc. Retrieved April 8, 2024 from https://www.uber.com/en-DK/blog/microservice-architecture
- IATA. [n.d.]. Airline Retailing. IATA. Retrieved March 24, 2024 from https://www.iata.org/en/programs/airline-distribution/retailing
- imbursepayments. [n.d.]. What is a PSP and how does it work? Retrieved November, 4 2022 from https://imbursepayments.com/what-is-a-psp
- Ninad Khisti. 2018. Measuring Transactional Integrity in Airbnb’s Distributed Payment Ecosystem. AirBnb. Retrieved April 8, 2024 from https://medium.com/airbnb-engineering/measuring-transactional-integrity-in-airbnbs-distributed-payment-ecosystem-a670d6926d22
- Online Event Processing. Commun. ACM 62, 5 (apr 2019), 43–49. https://doi.org/10.1145/3312527
- Rodrigo Laigner. 2023. EventBenchmark. Retrieved April 4, 2024 from https://github.com/diku-dk/EventBenchmark/releases/tag/v1.0
- A Benchmark for Data Management Challenges in Microservices (Extended Version). https://rnlaigner.github.io/files/extended.pdf Manuscript submitted for publication.
- Data Management in Microservices: State of the Practice, Challenges, and Research Directions. Proc. VLDB Endow. 14, 13 (sep 2021), 3348–3361. https://doi.org/10.14778/3484224.3484232
- Hybrid Deterministic and Nondeterministic Execution of Transactions in Actor Systems. In Proceedings of the 2022 International Conference on Management of Data (Philadelphia, PA, USA) (SIGMOD ’22). Association for Computing Machinery, New York, NY, USA, 65–78. https://doi.org/10.1145/3514221.3526172
- Materialize. [n.d.]. How Ecommerce Company Drizly uses Materialize for Real-Time Notifications, Alerting, and Personalization. Retrieved November, 4 2022 from https://materialize.com/customer-stories/drizly
- Math.NET. 2023. Math.NET Numerics. Retrieved November 20, 2023 from https://numerics.mathdotnet.com/
- Ricardo Mayerhofer. 2018. restQL: Tackling microservice query complexity. B2W. Retrieved April 8, 2024 from https://medium.com/b2w-engineering-en/restql-tackling-microservice-query-complexity-27def5d09b40
- Osvaldo Santana Neto. 2018. Olist Architecture From Monolith to microservices. Olist. Retrieved March 18, 2024 from https://www.slideshare.net/osantana/olist-architecture-v20
- Matheus Oliveira. 2017. Gerenciamento de dados com micro-serviços e a experiência do iFood. iFood. Retrieved April 8, 2024 from https://www.infoq.com/br/presentations/gerenciamento-de-dados-com-micro-servicos-e-a-experiencia-do-ifood
- Microsoft Orleans. 2023. Request scheduling. Retrieved November 25, 2023 from https://learn.microsoft.com/en-us/dotnet/orleans/grains/request-scheduling
- Microsoft Orleans. 2024a. Orleans streams implementation details. Microsoft. Retrieved April 8, 2024 from https://learn.microsoft.com/en-us/dotnet/orleans/implementation/streams-implementation/
- Microsoft Orleans. 2024b. Streaming with Orleans. Microsoft. Retrieved March 24, 2024 from https://learn.microsoft.com/en-us/dotnet/orleans/streaming/?pivots=orleans-7-0
- Nitin Sarma. 2020. Event Driven Architectures @ Netflix Content Finance Engineering. Netflix. Retrieved April 8, 2024 from https://www.linkedin.com/pulse/event-driven-architectures-netflix-content-finance-engineering-s/
- Natan Silnitsky. 2022a. Event Driven Architecture — 5 Pitfalls to Avoid. Wix. Retrieved July 1, 2023 from https://medium.com/wix-engineering/event-driven-architecture-5-pitfalls-to-avoid-b3ebf885bdb1
- Natan Silnitsky. 2022b. Troubleshooting Kafka for 2000 Microservices at Wix. Wix. Retrieved July 1, 2023 from https://medium.com/wix-engineering/troubleshooting-kafka-for-2000-microservices-at-wix-986ee382fd1e
- Aakriti Singla and Simon Wu. 2020. Revolutionizing Money Movements at Scale with Strong Data Consistency. Uber Technologies Inc. Retrieved April 8, 2024 from https://eng.uber.com/money-scale-strong-data
- Apache Flink Statefun. 2023a. Co-located Functions. Retrieved November 25, 2023 from https://nightlies.apache.org/flink/flink-statefun-docs-master/docs/concepts/distributed_architecture/#co-located-functions
- Apache Flink Statefun. 2023b. Shopping Cart Example with Docker Compose. Retrieved November 25, 2023 from https://github.com/apache/flink-statefun-playground/tree/main/java/shopping-cart
- Apache Flink Statefun. 2023c. Stateful Functions: A Platform-Independent Stateful Serverless Stack. Retrieved November 11, 2023 from https://nightlies.apache.org/flink/flink-statefun-docs-master/
- Statista. 2024. eCommerce - Worldwide. Retrieved March 18, 2024 from https://www.statista.com/outlook/emo/ecommerce/worldwide
- Jan Stenberg. 2019. Experiences Moving from Microservices to Workflows at Jet.com. Jet.com. Retrieved March 21, 2024 from https://www.infoq.com/news/2019/02/migrate-microservices-workflows
- P-Store: An Elastic Database System with Predictive Provisioning. In Proceedings of the 2018 International Conference on Management of Data (Houston, TX, USA) (SIGMOD ’18). Association for Computing Machinery, New York, NY, USA, 205–219. https://doi.org/10.1145/3183713.3190650
- UCloud. [n.d.]a. Products - UCloud. Retrieved November 28, 2023 from https://docs.cloud.sdu.dk/guide/resources-products.html#compute
- UCloud. [n.d.]b. UCloud User Guide. Retrieved November 28, 2023 from https://docs.cloud.sdu.dk
- Synapse: A Microservices Architecture for Heterogeneous-Database Web Applications. In Proceedings of the Tenth European Conference on Computer Systems (Bordeaux, France) (EuroSys ’15). Association for Computing Machinery, New York, NY, USA, Article 21, 16 pages. https://doi.org/10.1145/2741948.2741975
- VTEX. [n.d.]. Commerce Microservices. VTEX. Retrieved March 18, 2024 from https://vtex.com/us-en/commerce-microservices/
- Modeling and Building IoT Data Platforms with Actor-Oriented Databases. In Advances in Database Technology - 22nd International Conference on Extending Database Technology, EDBT 2019, Lisbon, Portugal, March 26-29, 2019. OpenProceedings.org, 512–523. https://doi.org/10.5441/002/edbt.2019.47
- Enabling Seamless Kafka Async Queuing with Consumer Proxy. Uber Technologies Inc. Retrieved April 8, 2024 from https://www.uber.com/en-SE/blog/kafka-async-queuing-with-consumer-proxy/
- UniBench: A Benchmark for Multi-model Database Management Systems: Recognizing Outstanding Ph.D. Research. 7–23. https://doi.org/10.1007/978-3-030-11404-6_2
- Fault Analysis and Debugging of Microservice Systems: Industrial Survey, Benchmark System, and Empirical Study. IEEE Trans. Softw. Eng. 47, 2 (feb 2021), 243–260. https://doi.org/10.1109/TSE.2018.2887384
- Benchmarking microservice systems for software engineering research. In Proceedings of the 40th International Conference on Software Engineering: Companion Proceeedings, ICSE 2018, Gothenburg, Sweden, May 27 - June 03, 2018, Michel Chaudron, Ivica Crnkovic, Marsha Chechik, and Mark Harman (Eds.). ACM, 323–324. https://doi.org/10.1145/3183440.3194991