1. A method performed by one or more processing devices, the method comprising: receiving, at a memory controller, a logical write request over a logical interface that the memory controller provides for accessing one or more non-volatile storage devices, the logical write request indicating a logical address at which to write data to the one or more non-volatile storage devices; in response to receiving the logical write request, sending, by the memory controller, a write request event to a host system, wherein the write request event (i) indicates that the logical write request was received by the memory controller and (ii) indicates the data to be written according to the logical write request; after sending the write request event to the host system, receiving, at the memory controller, a physical write command from the host system over a physical interface that the memory controller provides for accessing the one or more non-volatile storage devices, wherein the physical write command (i) indicates the data to be written and (ii) indicates a physical address for writing the data to the one or more non-volatile storage devices; and in response to receiving the physical write command from the host system, storing, by the memory controller, the data in a portion of the one or more non-volatile storage devices indicated by the physical address indicated by the physical write command.