Dependencia de datos Flux / Alt, cómo manejar de manera elegante e idiomática

Estoy usandoalt como mi implementación de flujo para un proyecto y tengo problemas para entender la mejor manera de manejar las tiendas de carga para dos entidades relacionadas. Estoy usandofuentes junto con registerAsync para manejar mis llamadas async / api y vincularlas a mis vistas usando AltContainer.

Tengo dos entidades relacionadas una a una por el Id. De conversación. Ambos se cargan a través de una llamada API:

Una vez que mi tienda de trabajo se carga con datos, quiero llenar una tienda de conversación.

Yo uso una fuente para cargar la tienda de trabajo:

module.exports = {
    fetchJobs() {
        return {
            remote() {
                return axios.get('api/platform/jobs');

            },....

Parece un trabajo para elwaitFor () , pero parece usarse cuando el contenido de una tienda requiere una transformación o fusión con el contenido de otra. Necesito buscar el contenido de un almacén de datos basado en el contenido de otro.

En términos generales, necesito:

Llame a una API de terceros y cargue una lista de entidades en una tienda.Cuando lleguen esos datos, necesito usar el atributo de cada uno de los anteriores para llamar a otra API y cargar esos datos en otra tienda.

Mi solución ingenua es hacer referencia a las acciones de conversación desde la tienda de empleo y enviar un evento cuando lleguen los datos. Algo como esto:

var jobActions = require('../actions/Jobs');
var conversationActions = require('../actions/Conversations');

class JobStore {
    constructor() {
        this.bindListeners({
            handlefullUpdate: actions.success
        });...

    }

    handlefullUpdate(jobs) {
        this.jobs = jobs;
        conversationActions.fetch.defer(jobs);
    }
}

Por supuesto, hacer esto viola el dicho de que las tiendas no deben enviar eventos, por lo que debo usar diferir para enviar una acción en medio de un envío. Tiene sentido para mí, ya que parece que al seguir este camino estoy reintroduciendo todo tipo de efectos secundarios en mi código; perdiendo la belleza de las "tuberías funcionales" que debería estar viendo con fluidez.

Además, mi tienda de empleo tiene que contener una referencia a las entidades dependientes para que pueda enviar la acción adecuada. Aquí solo tengo uno, pero podría imaginar muchos. En términos de dependencias entre entidades, esto parece totalmente al revés.

Se me ocurren un par de alternativas:

Puedo llamar alapi / plataforma / trabajos punto final en la fuente / acción donde obtengo todas las conversaciones, solo para obtener la identificación. El enfoque original es más eficiente, pero esto parece más cierto para el espíritu de cambio, ya que pierdo toda la conversación cruzada.

También podría tener una sola acción / fuente que recupere ambas, regresando{jobs:{}, conversations: in the action} (orquestando la dependencia allí usando promesas) y use esto para llenar ambas tiendas. Pero este enfoque me parece innecesariamente complicado (¡siento que no debería tener que hacerlo!).

¿Pero me estoy perdiendo otra manera? Parece extraño que un caso de uso tan común rompa la elegancia del paradim de flujo y / o me obligue a saltar por tantos aros.

@dougajmcdonald hizo una pregunta similaraquí, pero tal vez fue redactado demasiado en general, y no obtuvo ninguna tracción:

Respuestas a la pregunta(3)

Su respuesta a la pregunta