Characterizing the Complexity of
ML-Enabled Systems

https://renatocf.xyz/cain26-slides

2026

Renato Cordeiro Ferreira

Institute of Mathematics and Statistics (IME)
University of São Paulo (USP)  Brazil

Jheronimus Academy of Data Science (JADS)
Technical University of Eindhoven (TUe) / Tilburg University (TiU)  – The Netherlands

Paper

Slides

Former Principal ML Engineer at Elo7 (BR)
4 years of industry experience designing, building, and operating ML products with multidisciplinary teams

B.Sc. and M.Sc. at University of São Paulo (BR)

Theoretical and practical experience with Machine Learning and Software Engineering

Scientific Programmer at JADS (NL)

Currently participating of the MARIT-D European project, using ML techniques for more secure seas

Ph.D. candidate at USP (BR)

Researching about SE4AI, in particular about MLOps and software architecture of ML-Enabled Systems

Renato Cordeiro Ferreira

https://renatocf.xyz/contacts

My goal is to characterize
how complexity emerges
in the software architecture
of ML-enabled systems

Research Questions

What are the system components that describe
the architecture of ML-enabled systems?

What are the dimensions of complexity that affect
the architecture of ML-enabled systems?

RQ1

RQ2

RQ2

How does complexity correlate with the components of the architecture of ML-enabled systems?

RQ3

Research Methodology

Reference Architecture
+
Complexity Model

Academic and Industry-based case studies
of MLES

Application
and validation
of the complexity model using the case studies

Threats to Validity

Construct Validity
The study can measure what it proposed to measure

Internal Validity
The study can produce the results it reported

External Validity
The study can be generalized to other contexts

Conclusion
The study can be replicated by other researchers

C

I

E

R

I

C

E

R

E

C

Researcher
bias during analysis

Data from
knowledge bases

Researcher
Design
Bias

Choice of

Case Studies

 Sampling

Population of

Practitioners 

I

C

E

R

E

C

Established
Literature

Guidelines
from
Literature

Open Artifacts
to improve
reproducibility

Achieve a
larger sample
of practitioners

Architectures built with
established
techniques

Complexity Model

Data

Model

Code

Schema

Sampling

Volume

Algorithms

More Training

Experiments

Business Needs

Bug Fixes

Configuration

Axis of Change for ML

Based on "Continuous Delivery for Machine Learning", by Danilo Sato, Arif Wider, and Christoph Windheuser -- https://martinfowler.com/articles/cd4ml.html

Data

Model

Code

Volume

Value

Velocity

Variety

Veracity

Dynamism

Explainability

Staleness

Choreography

Flexibility

Scalability

Adaptability

Availability

Reliability

Performance

Data

Volume

Value

Velocity

Variety

Veracity

Small / Big

Batch / Mini-Batch / Streaming

Structured / Unstructured / Mixed

Bronze / Silver / Gold

Poor / Rich

Model

Dynamism

Explainability

Staleness

Choreography

Flexibility

Frequency of Concept Drift

Frequency of Data Drift

Combination of Models

Number of (hyper)parameters

Interpretability of Results

Code

Scalability

Adaptability

Availability

Performance

Resiliency

Expected increase of demand

Expected service level agreement

Expected limitations on runtime

Expected tolerance to faults

Expected flexibility to changes

Reference Architecture
for ML-Enabled Systems

Published at:

ECSA 2025

MLOps in Practice:
Requirements and a Reference Architecture from Industry

renatocf.xyz/ecsa25-paper

Published at:

DS @ CAIN 2025

A Metrics-Oriented Architectural Model
to Characterize Complexity on
ML-Enabled Systems

renatocf.xyz/cain25-paper

Serving
Serving
Continuous Training
Continuous Training
Monitoring
Monitoring
Continuous Delivery
Continuous Delivery
Data Acquisition
Data Acquisition
Development
Development
Data
Store
Data...
Feature
Store
Feature...
Data
Pipeline
Data...
Feature
Engineering
Pipeline
Feature...
Training
Pipeline
Training...
Metadata
Store
Metadata...
Raw Data
Store
Raw Data...
Model
Registry
Model...
CI
Pipeline
CI...
Artifact
Registry
Artifact...
Scheduler
Service
Scheduler...
Code
Repository
Code...
CD4ML
Pipeline
CD4ML...
Streaming
Prediction
Service
Streaming...
Batch
Prediction
Pipeline
Batch...
API
Prediction Service
API...
Prediction
Store
Prediction...
Code Editor
IDE
Code Editor...
Notebooks
Notebooks
Physical
Sensors

(IoT)
Physical...
Data
Crawlers
Data...
Labeling
Application
(Mechanical Turk)
Labeling...
Label
Store
Label...
CD
Pipeline
CD...
Consumer
Application
Consumer...
Monitoring
Service
Monitoring...
[ trigger ]
[ trigger ]
Data
Collection
Application
Data...
1
1
2
2
3
3
5
5
I
I
II
II
III
III
6
6
7
7
IV
IV
VI
VI
V
V
13
13
12
12
11
11
VII
VII
10
10
8
8
A
A
B
B
D
D
H
H
G
G
F
F
E
E
J
J
C
C
[ build ]
[ build ]
[ trigger ]
[ trigger ]
[ trigger ]
[ trigger ]
Governance
Application
Governance...
[ trigger ]
[ trigger ]
9
9
Manual
Trigger
Manual...
Metrics
Store
Metrics...
[  deploy  ]
[  update  ]
[ rollback ]
[  deploy  ]...
I
I
Queue
Broker
Queue...
K
K
[ train ]
[ train ]
[ redeploy ]
[ redeploy ]
[ run ]
[ run ]
[  deploy  ]
[  update  ]
[ rollback ]
[  deploy  ]...
Telemetry
Store
Telemetry...
L
L
3rd party
Application
(External)
3rd party...
4
4
[  deploy  ]
[  update  ]
[ rollback ]
[  deploy  ]...
read / write
request / response
Service
Application
Pipeline
Storage
Subsystem
Legend
1
I
A
Service Label
Pipeline Label
Storage Label
continuation
start
[action]
Data Flow
Execution Flow

Case Study #1
SPIRA

Published at:

SADIS @ ECSA 2025

Making a Pipeline
Production-Ready:

Challenges and
Lessons Learned in the
Healthcare Domain

https://renatocf.xyz/sadis25-paper

renatocf.xyz/sadis25-paper

Continuous Delivery
Continuous Delivery
Data Collection
Data Collection
Continuous Training
Continuous Training
Developing
Developing
Serving
Serving
Monitoring
Monitoring
[trigger]
[trigger]
Data
Collection
App
Data...
Data
Collection
API
Data...
Document
DB
Document...
KV DB
(Audio)
KV DB...
Model
Registry
Model...
Metadata
Store
Metadata...
Streaming
Prediction
Server
Streaming...
Client
API
Client...
KV DB
(Audio)
KV DB...
Feature
Store
Feature...
Feature
Engineering
Pipeline
Feature...
Training
Pipeline
Training...
Message
Queue
Message...
CD
Pipeline
CD...
CI
Pipeline
CI...
Artifact
Registry
Artifact...
Code
Repository
Code...
CD4ML
Pipeline
CD4ML...
[  deploy  ]
[  update  ]
[ rollback ]
[  deploy  ]...
Client
App
Client...
Code Editor
IDE
Code Editor...
Governance
Application
Governance...
Scheduler
Service
Scheduler...
[train]
[train]
[trigger]
[trigger]
Label
Store
Label...
Hospital
API
Hospital...
Telemetry
Store
Telemetry...
1
1
2
2
3
3
I
I
II
II
A
A
B
B
C
C
D
D
E
E
I
I
7
7
6
6
5
5
H
H
G
G
F
F
4
4
III
III
IV
IV
V
V
8
8
9
9
J
J
K
K
[  deploy  ]
[  update  ]
[ rollback ]
[  deploy  ]...
Continuous Delivery
Continuous Delivery
Data Collection
Data Collection
Continuous Training
Continuous Training
Developing
Developing
Serving
Serving
Monitoring
Monitoring
[trigger]
[trigger]
Data
Collection
App
Data...
Data
Collection
API
Data...
Document
DB
Document...
KV DB
(Audio)
KV DB...
Model
Registry
Model...
Metadata
Store
Metadata...
Streaming
Prediction
Server
Streaming...
Client
API
Client...
KV DB
(Audio)
KV DB...
Feature
Store
Feature...
Feature
Engineering
Pipeline
Feature...
Training
Pipeline
Training...
Message
Queue
Message...
CD
Pipeline
CD...
CI
Pipeline
CI...
Artifact
Registry
Artifact...
Code
Repository
Code...
CD4ML
Pipeline
CD4ML...
[  deploy  ]
[  update  ]
[ rollback ]
[  deploy  ]...
Client
App
Client...
Code Editor
IDE
Code Editor...
Governance
Application
Governance...
Scheduler
Service
Scheduler...
[train]
[train]
[trigger]
[trigger]
Label
Store
Label...
Hospital
API
Hospital...
Telemetry
Store
Telemetry...
1
1
2
2
3
3
I
I
II
II
A
A
B
B
C
C
D
D
E
E
I
I
7
7
6
6
5
5
H
H
G
G
F
F
4
4
III
III
IV
IV
V
V
8
8
9
9
J
J
K
K
[  deploy  ]
[  update  ]
[ rollback ]
[  deploy  ]...

Data Collection App
Scientific Initiation 2021
Francisco Wernke

Streaming
Prediction Server
+ Client API / App

Capstone Project 2022
Vitor Tamae

Highly Availability
with Kubernetes

Capstone Project 2023
Vitor Guidi

Redesign Continuous Training Subsystem
Capstone Project 2023
Daniel Lawand

CI/CD/CD4ML on
Training Pipeline

Capstone Project 2024
Lucas Quaresma
+ Roberto Bolgheroni

Case Study #2
OCEAN GUARD

Published at:

SummerSOC 2025

MLOps with
Microservices:

A Case Study in the Maritime Domain

renatocf.xyz/ssoc25-paper

Research Team
MSc Students

Innovation Team
PDEng Trainees

Ui Dev Team
Hired Developers

Core Dev Team
Scientific Programmers

Published at:

SAiP @ ICSA 2026

Reusability
in MLOps:

Leveraging Ports and
Adapters to Build a
Microservices Architecture
for the Maritime Domain

renatocf.xyz/icsa26-paper

v3

v4

v5

Feedback & Next Steps

Defense?!

please

Some welcome feedback...

1

2

How can I best execute the practitioner validation?

3

How can I best illustrate the complexity model?

How can I best introduce the case studies?

Characterizing the Complexity of
ML-Enabled Systems

https://renatocf.xyz/cain26-slides

2026

Renato Cordeiro Ferreira

Institute of Mathematics and Statistics (IME)
University of São Paulo (USP)  Brazil

Jheronimus Academy of Data Science (JADS)
Technical University of Eindhoven (TUe) / Tilburg University (TiU)  – The Netherlands

Paper

Slides

[CAIN 2026] Characterizing the Complexity of ML-Enabled Systems

By Renato Cordeiro Ferreira

[CAIN 2026] Characterizing the Complexity of ML-Enabled Systems

How can the complexity of ML-enabled systems be managed effectively? The goal of this research is to investigate how complexity affects ML-enabled systems (MLES). To address this question, this research aims to categorize dimensions of architectural complexity that characterize the complexity of MLES. The goal is to support architectural decisions, providing a guideline for the inception and evolution of these systems.

  • 53