When a write is made, by default, it goes into two places:
write-ahead log (WAL), HLog, and
in-memory write buffer, MemStore.
Clients don't interact directly with the underlying HFiles during writes, rather writes goes to WAL & MemStore in parallel. Every write to HBase requires confirmation from both the WAL and the MemStore.