Reusability in MLOps: Leveraging Ports and Adapters to Build a Microservices Architecture for the Maritime Domain
This is an incremental improvement for software engineers, machine learning engineers, and data scientists building ML-Enabled Systems.
The paper tackles the complexity of ML-Enabled Systems by applying the Ports and Adapters pattern to build Ocean Guard, an anomaly detection system for the maritime domain, resulting in improved reusability and support for multiple microservices from a single codebase.
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.