What does this PR implement?
This is a maintenance PR that reorganizes frontend and backend. Before, they were separate Docker containers. Now, they're separate sub-modules and they run two different servers.
This PR makes Salmon much simpler: only one Docker machine instead of two, and removes all the repeated code. The one minor downside: the frontend and backend share the same Docker container, which might be an issue in the future or if Dask isn't used properly. However, it's up to the OS to manage this because they're run on separate servers.
This differs from the architecture of Microsoft's MDS. I think the use cases are different enough to warrant this difference. The feedback loop in triplets is tighter than it is for MDS and their ad-serving. Plus, the Dask client could be on a separate machine.
What does this PR implement? This is a maintenance PR that reorganizes frontend and backend. Before, they were separate Docker containers. Now, they're separate sub-modules and they run two different servers.
This PR makes Salmon much simpler: only one Docker machine instead of two, and removes all the repeated code. The one minor downside: the frontend and backend share the same Docker container, which might be an issue in the future or if Dask isn't used properly. However, it's up to the OS to manage this because they're run on separate servers.
This differs from the architecture of Microsoft's MDS. I think the use cases are different enough to warrant this difference. The feedback loop in triplets is tighter than it is for MDS and their ad-serving. Plus, the Dask client could be on a separate machine.
TODO:
Reference issues/PRs This PR closes #33.