The only challenge I still have with systemd is dependencies.
You can easily define that B depends on A, so A starts first. But if A takes 10 seconds to get online, B starts to soon. For example if you start a proces that requires the database. You can start MySQL, but that process returns long before MySQL is ready to accept connections.
I've now worked around that by giving B a fixed startup delay (10-20 seconds), but that could be improved.