I am trying to build a simple DBG de novo assembler for learning purposes, and I am struggling to understand one thing that every paper I read seems to gloss over: when building a DBG from real data, errors will cause the DBG no be non-Eulerian. Assuming I cannot perform perfect error correction, how do I deal with this? Do I just start randomly looking for Eulerian walks, and once I get stuck, just output the walk as a contig and start looking for the next walk? What am I missing? Do DBG-based de novo assemblers always simplify the graph until it becomes Eulerian (I know that graph simplification is a critical step, but I've never seen "don't stop until the graph is Eulerian" as a criterion)?