A data engineer has set up two Jobs that each run nightly. The first Job starts at 12:00 AM, and it usually completes in about 20 minutes. The second Job depends on the first Job, and it starts at 12:30 AM. Sometimes, the second Job fails when the first Job does not complete by 12:30 AM.
Which of the following approaches can the data engineer use to avoid this problem?
a) Increase the cluster size to reduce the execution time of both jobs.
b) Implement a retry mechanism for the second job with a delay if the first job is not complete.
c) Schedule the second job to start only after receiving a completion notification from the first job.
d) Optimize the code logic of both jobs to minimize execution time variability.