JFFS wymusza równoważenie zużycia w ten sposób, że traktuje urządzenie flash jako cykliczny plik zawierający dziennik. Każda zmiana dotycząca plików czy katalogów jest zapisywana na końcu takiego pliku w postaci „węzła”. W każdym węźle w pierwszej kolejności zapisywany jest nagłówek zawierający metadane, następnie zaś zapisywane są dane, jeśli takie istnieją. Węzły rozpoczynają swój czas życia jako „ważne”, a gdy tworzona jest ich nowsza wersja, stają się „unieważnione”.

Wolną przestrzeń w systemie plików stanowi przerwa między początkiem pliku dziennika oraz jego końcem. Kiedy jest jej bardzo mało, garbage collector kopiuje ważne węzły z początku pliku dziennika na jego koniec, pomijając węzły unieważnione, i odzyskuje w ten sposób przestrzeń do ponownego użycia.

Format danych W JFFS istnieje jeden typ węzła, reprezentowany przez strukturę jffs_raw_node; każdy taki węzeł skojarzony jest z dokładnie jednym i-węzłem i składa się z nagłówka oraz, opcjonalnie, pewnych danych.