I suggest not throwing out the baby (the monolith) with the bathwater (dependency hell). Some languages are better than others at managing dependencies. You might like Rust in this regard; it has no global namespace, so IIUC, that minimizes dependency conflicts.