is there any solution to create parent job (it orchestrate some jobs) that if it failed in B Job, then restart it.
it wil rerun from B to D Job ?
is it correct if 'recovery checkpoint' function only work with start and end trunJob?
or any workaround to scenario above?
I think this feature should be on any ETL tools
There are several ways of achieving this with Talend. You can follow this way of you have the enterprise edition (https://community.talend.com/t5/Design-and-Development/Error-Recovery-management/ta-p/171), although I prefer to implement my own mechanism for this since I feel the way this achieved can depend on the sort of processing you are carrying out.
If you haven't got the enterprise edition, then a good way of achieving this (and also built in performance logging) is to have a database table which logs the start, end and success state of each of your child jobs within your main jobs. Then, when you run your main job, it will look at this table and identify if a run has failed before it starts. Then it can use that information to decide how it should proceed.