An optical data latch is formed on a substrate from a pair of optical logic gates in a cross-coupled arrangement in which optical waveguides are used to couple an output of each gate to an photodetector input of the other gate. This provides an optical bi-stability which can be used to store a bit of optical information in the latch. Each optical logic gate, which can be an optical NOT gate (i.e. an optical inverter) or an optical NOR gate, includes a waveguide photodetector electrically connected in series with a waveguide electroabsorption modulator. The optical data latch can be formed on a III-V compound semiconductor substrate (e.g. an InP or GaAs substrate) from III-V compound semiconductor layers. A number of optical data latches can be cascaded to form a clocked optical data shift register.