Telenav / osrm-backend

Open Source Routing Machine - C++ backend
http://map.project-osrm.org
BSD 2-Clause "Simplified" License
18 stars 7 forks source link

Streaming experiment for ETA service #357

Open CodeBear801 opened 4 years ago

CodeBear801 commented 4 years ago

subtask of https://github.com/Telenav/osrm-backend/issues/355

To be summary:

More info

CodeBear801 commented 4 years ago

Draft streaming system diagram, related with https://github.com/Telenav/osrm-backend/issues/356#issuecomment-647797572

Context diagram

image (click for large image)

image

For how the output to be used could go to https://github.com/Telenav/osrm-backend/issues/356#issuecomment-647797572

Proposal: image

Another proposal: image

Container diagram

image

Component diagram

image

Aggregator

Aggregator

Unique ID assigner

Trip Data Enhancer(Feature engineering)

Draft flow:

Why separate Aggregator and Trip Data Enhancer

Notes:

Minimal Visible Product

Road Trip Enhancer(V1)

Don't use additional framework, just handling input and generate expected output based on 1 or 2 remote service, working on single node.

Road Trip Enhancer(V2)

Use streaming calculation framework to replace internal logic of V1, keep input and output part

on(loader)
.on(generateFeature1)
.on(generateFeature2)
...
.on(publish)

The reason of using streaming framework is

Aggregator

Aggregator mainly used to achieve real time goal, for the beginning we could used batched result for following components until we have clear understanding of this components.