@gowri_databrick
A simple way to understand this is:
Asset Bundles are used to deploy the project, while Lakeflow Jobs are used to run the deployed pipeline.
Practical scenario
Imagine an e-commerce company has a customer pipeline that runs every night.
The project contains:
Customer ingestion notebook
Customer transformation code
A Lakeflow Job to run these steps
Asset Bundles:
The developer keeps the notebooks, code and job configuration in Git.
For example:
Developer → Git → Databricks Asset Bundle
The Asset Bundle describes what needs to be deployed, such as notebooks, jobs, tasks and configuration.
When the code is ready, the bundle can be deployed to DEV, TEST and PROD without manually creating the same resources in each environment.
So, Asset Bundles mainly help with version control and consistent deployment.
Lakeflow Jobs:
Once the job is deployed, Lakeflow Jobs is responsible for running the pipeline.
For example, we can configure the job to run every night at 1 AM.
The job could have tasks like:
Ingest customer data → Transform customer data → Load the final table
Lakeflow Jobs manages the task order, dependencies, scheduling, retries and execution.
Asset Bundle + Lakeflow
In a real project, the flow would be something like:
Step 1: Developer changes the customer pipeline code.
Step 2: The changes are committed to Git.
Step 3: The Asset Bundle is deployed through the CI/CD pipeline.
Step 4: The bundle creates or updates the Lakeflow Job in the target environment.
Step 5: Lakeflow Jobs runs the pipeline based on the configured schedule.
So, I normally think of it this way:
Asset Bundles :- Deploy and manage the project
Lakeflow Jobs :- Schedule and run the project
They work together nicely because the job itself can be defined as code inside the Asset Bundle, rather than manually creating and configuring jobs separately in each environment.