Operadores básicos: Mapeo y FiltradoTransformaciones 1 a 1 con map()Finalizando con flatMap()Aplazamiento de eventos mediante el operador delay()Orden de los eventos después de flatMap()Mantener el orden con concatMap()Más de un observableTratar varios observables como uno solo mediante merge()Composición por pares utilizando zip() y zipWith()Cuando los flujos no están sincronizados entre sí: combineLatest(), withLatestFrom() y amb()Operadores avanzados: collect(), reduce(), scan(), distinct() y groupBy()Escanear por la secuencia con Escanear y ReducirReducción con acumulador mutable: collect()Comprobación de que el observable tiene exactamente un elemento mediante single()Eliminar duplicados con distinct() y distinctUntilChanged()Cortar y rebanar usando skip(), takeWhile() y otrosFormas de combinar flujos: concat(), merge() y switchOnNext()División de la secuencia basada en criterios mediante groupBy()¿Adónde vamos ahora?Redacción de Operadores de ClientesReutilización de operadores mediante compose()Implementación de operadores avanzados mediante lift()Resumen