Reusability in MLOps: Leveraging Ports and Adapters to Build a Microservices Architecture for the Maritime Domain
Renato Cordeiro Ferreira (1,2,3,4), Aditya Dhinavahi (1,2), Rowanne Trapmann (1,3), Willem-Jan van den Heuvel (1,2,3) ((1) Jheronimus Academy of Data Science, (2) Technical University of Eindhoven, (3) Tilburg University, (4) University of S\~ao Paulo)

TL;DR
This paper discusses how reusing the Ports and Adapters pattern within a Hexagonal Architecture enables building flexible, reusable ML-enabled microservices in the maritime domain, exemplified by the Ocean Guard system.
Contribution
It demonstrates the application of Ports and Adapters pattern for reusability in MLOps, providing practical insights and lessons learned for building modular MLES architectures.
Findings
Reusing Ports and Adapters pattern enhances modularity and reusability.
Applying Hexagonal Architecture supports building multiple microservices from a single codebase.
Lessons learned can guide future MLOps architecture design.
Abstract
ML-Enabled Systems (MLES) are inherently complex since they require multiple components to achieve their business goal. This experience report showcases the software architecture reusability techniques applied while building Ocean Guard, an MLES for anomaly detection in the maritime domain. In particular, it highlights the challenges and lessons learned to reuse the Ports and Adapters pattern to support building multiple microservices from a single codebase. This experience report hopes to inspire software engineers, machine learning engineers, and data scientists to apply the Hexagonal Architecture pattern to build their MLES.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware System Performance and Reliability · Advanced Software Engineering Methodologies · Software Testing and Debugging Techniques
