obtener un solo artículo de ngrx / store

He escrito el siguiente reductor para almacenar los elementos de estado en mi aplicación Angular 2. Los artículos son ofertas de precios para instrumentos financieros (por ejemplo, acciones / monedas).

La implementación de mi reductor es la siguiente:

export const offersStore = (state = new Array<Offer>(), action:Action) => {
switch(action.type){

    case "Insert":
        return [
            ...state, action.payload
        ];
    case "Update":
            return state.map(offer => {
                    if(offer.Instrument === action.payload.Instrument)
                    {
                        return Object.assign({}, action.payload);
                    }
                    else return offer;
            });
    case "Delete":
        return state.filter(offer => offer.Instrument !== action.payload )
    default:
        return state;
    }

}

Me las arreglé para que funcionen las Inserciones, Actualizaciones y Eliminaciones, aunque no fue fácil. Me parece que Redux es una especie de cambio de paradigma de cómo he estado codificando durante años.

Tengo un componente / página de instrumento en mi aplicación, que muestra toda la información disponible para un instrumento específico, indicado por InstrumentId, p. "EUR / USD" (almacenado en la carga útil. Propiedad del instrumento).

Mi problema es que no estoy seguro de cómo buscar eficientemente un instrumento específico y sacarlo de la tienda. No solo esto, sino que también quiero que el instrumento que obtengo se actualice si el Instrumento en la tienda se actualiza, ya que con frecuencia se realizan a través de la conexión websocket desde el servidor. Así que realmente necesito buscar en la tienda un instrumento específico y devolverlo como un Observable, que continuará actualizando el Componente de visualización en función de los nuevos datos que se envían a la tienda.

¿Cómo puedo conseguir esto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta