Flash technolgoy allows affordabe non-volatile mass storage in embedded systems. The implementation of a flash based file system must consider the end-user needs as well as the design team needs. The first key considerations is the file system type. Is it FAT based, Journaling or Transactional? When Flash is used as the storage medium, other considerations like data integrity mechanisms, wear-leveling and bad block management algorithms including power fail safe features, high performance reads and writes, enabled through multi-threaded support and background garbage collection are all factors that need to be addressed. From the commercial products available, other selection criteria includes quick boot times, broad hardware support, source code and documentation.