Skip to content

Untitled page



Why: Airflow has been a cornerstone of data orchestration at Discover, enabling various data pipelines and powering numerous business-critical applications. However, Airflow currently does not meet script governance requirements, as defined by Capital One. Controls need to be adopted by all customers by mid-May 2026.
Scope: This story is to ensure that Airflow jobs that have not been registered in Alation within a reasonable timeframe (configurable value, initial value =48 hours) are deactivated in Production.
As an Airflow user, I want to create and test a job in Airflow, but prevent it from residing permanently in Production without Alation registration, so that I can ensure I am following proper script governance control policies.
Airflow Customer Journey:
Steps:
(Those owned by Analytic Platforms are in green)
User goes to Airflow Production UI and submits a job
The user is notified that BI-Ops registration is required or deactivation will occur in X hours (configurable). This number may be different for new jobs versus jobs that are being recreated.
Airflow creates the job in production
User tests the job and make sure it runs as expected
This job in the stage is automatically disabled after X number of days (ensuring the user has to complete their test within X days)
Later, user goes to a UI (either ServiceNow or a Custom UI)
User inputs the following details
Existing Airflow Stage Job Id
CHG number
Names of the source datasets
Names of the target datasets
Submits the form
Form will trigger the pipeline
Pipeline will retrieve the details of the stage job
Based on the stage job details and the user inputs from the form, it will check/validate the necessary controls
Error is thrown if any controls fail the check and is displayed to the user in the UI
If all controls pass the check, pipeline will issue a tag to indicate the Airflow job is registered.
The BI-Ops pipeline will tag the Airflow job to indicate it is registered.
A Cron will run that deactivates untagged jobs after X hours.
On failure, Operations will be notified to resolve the issue. An automated email will be sent to users (need to check on contact information)
At what point do we delete deactivated jobs, and how are we distinguishing between those that were systematically deactivated versus those deactivated by users?
The cron (or a separate cron) will be used to reactivate jobs registered after they were deactivated. Need more discussion on how it will work if the job had already been deleted.
Need a story (BI Enablement team?) to work on customer communication and DTA ‘how-to’ instructions.
Dependency:
BI-Ops tool development
Product Owner: Khanjan Lakhani
Engineering Manager / Chapter Lead: Naresh Vuppala
Customer adoption (Outreach led by Business Intelligence Enablement: Esther Nadler)
Acceptance Criteria:
Airflow users must be able to continue creating and testing jobs in all environments.
If the BI-Ops tool is available: During the job creation process, users will be notified that they must register jobs in Alation, after which jobs will be systematically deployed to Production. (Exact wording is TBD)
If the BI-Ops tool is available: During the job creation process, users will be notified that they will have 48 hours (configurable number) to register jobs in Alation prior to job deactivation in lower environments. (Exact wording is TBD)
If the BI-Ops tool is unavailable: During the job creation process, users will be notified of upcoming changes to the job deployment workflow. (Exact wording is TBD)
The Airflow job deactivation timeframe must be configurable.
The same value used by back end Airflow services / APIs should also be used for displaying messages on the UI.
Access to make configuration changes must be limited to Airflow administrators.
Airflow UI messaging, as well as changes to the workflow, must be controlled through feature toggle, given the dependency on BI-Ops tooling. Access to feature toggle must be limited to Airflow administrators.
A mechanism will exist to allow the BI-Ops pipeline to tag a job in Production, indicating the job has been registered in Alation.
A mechanism will exist (cron job) to deactivate jobs in Production that have not been properly tagged. Failure cases? User notification? Cleanup of deactivated jobs? Reactivation support?


Table 1
Phase
1. Initiation & Awareness
2. Validation & Testing
3. Governance Registration
4. Automated Enforcement
5. Recovery & Success
User Action
Submits DAG to Airflow Production UI.
Tests job runs; checks logs for success.
Navigates to BI-Ops UI; inputs DAG ID, CHG#, and Datasets.
Monitors job status; receives notifications.
Confirms "Registered" tag or reactivates job.
Airflow System Action
(Steps 1-3) Creates job; Triggers UI/API notification of 48h window.
(Step 5) Automatically disables Stage job after X days of inactivity.
(External) BI-Ops validates controls and issues a "Registered" tag.
(Step 15) Cron scans for untagged jobs older than 48h and deactivates them.
Automated email sent; Cron facilitates reactivation once tagged.
User Thought/Feeling
"I hope this logic is correct. What is this 48-hour warning?"
"The job works in Prod. Now I need to make it permanent."
"BI-Ops asks for a lot of detail, but it's better than manual tickets."
"Did I forget to register? I need to check if my job is still active."
"Governance complete. My job is now a compliant asset."
Pain Points
Confusion over the 48-hour limit vs. testing time.
Stage jobs being disabled too early before testing finishes.
Control check failures in BI-Ops (e.g., missing metadata).
Accidental deactivation of critical jobs.
Difficulty distinguishing user-deactivated vs. system-deactivated jobs.
Ownership
Analytic Platforms (Airflow)
Analytic Platforms (Airflow)
BI-Ops Team
Analytic Platforms (Airflow)
Analytic Platforms (Airflow)
There are no rows in this table


What is a user journey map?

A user journey map is a visualization of an individual’s relationships with a product/brand over time and across different channels.
While user journey maps come in all shapes and formats, commonly it’s represented as a timeline of all touchpoints between a user and a product. This timeline contains information about all channels that users use to interact with a product.
A user journey map template
A user journey map template. Image:

What design problems user journey helps us to solve?

User journey map is an excellent tool for UX designers because
"It visualizes how a user interacts with a product and allows designers to see a product from a user’s point of view."
This fosters a more user-centric approach to product design, which ultimately leads to better user experience.
User journey map helps a product team to find the answer to the “What if..?” questions. Also, a user journey map can be helpful when the company tracks quantitative KPIs. In this case, a user journey map has an opportunity to become a cornerstone for strategic recommendations.

The 8-steps user journey mapping process

Before creating a user journey map, it’s important to review the goals of your business/service. This knowledge will help you align business and user goals.

1. Choose a scope

The scope of the user journey map can vary from the high-level map which shows end-to-end experience to a more detailed map that focuses on one particular interaction (for instance, paying a bill).

2. Create a user persona

Who is your user?
A user journey map is always focused on the experience of one main actor — a user persona who experiences the journey.
User persona should always be created based on information you have about your target audience. That’s why always start with user research. Having solid information about your users will prevent you from making false assumptions.
Gather and analyze all available information about your target audience:
Interview your real or potential users
Conduct contextual inquiry
Analyze the results of user surveys

3. Define scenario and user expectations

The scenario describes the situation that the journey map addresses. It can be real or anticipated.
It’s also important to define what expectations a user persona has about the interaction.
For example, a scenario can be — ordering a taxi using a mobile app with expectations to get the car in 5 minutes or less.

4. Create a list of touchpoints

Touchpoints are user actions and interactions with the product/business. It’s vital to identify all main touchpoints and all channels associated with each touchpoint.
For example, for touchpoint ‘Buy a gift,’ channels can be — purchase online or buy in a store.

5. Take user intention into account

What motivates your user to interact with your product?
What problem are users looking to solve when they decide to use your product? Different user segments will have different reasons.
Let’s take an e-commerce website. There is a big difference between a user who is just looking around and a user who wants to accomplish a specific task (purchase a particular product).
For each user journey it’s vital to understand:
Motivation. Why are they trying to do it?
Channels. Where interaction takes place
Actions. The actual behaviors and steps taken by users.
Pain points. What are the challenges users are facing?

Tip: Ensure that the user is getting a consistent experience across all channels.

6. Sketch the journey

Put together all the information you have and sketch a journey in a format of step-by-step interaction. Each step demonstrates an experience that the persona has with a service/product or another person.
Here are that can be helpful during user journey mapping:

Tip: A tool called storyboard can help you show how users can interact with a product. Using storyboard, you can show visually what happens during each step.

A storyboard can help you build a strong, clear narrative. Image credit: Chelsea Hostetter, Austin Center for Design
A storyboard can help you build a strong, clear narrative. Image credit: Chelsea Hostetter, Austin Center for Design

7. Consider a user’s emotional state during each step of interaction

What does a user feel when interacting with your product?
Products we design need to mirror the state of mind of our users. When we consider a user’s emotional state, this knowledge will help us to connect with users on a human level. That’s why it’s important to add an emotional lane to the user journey map. By visualizing the emotional “ups” and “downs” of the experience you’ll show the areas of experience that require refinement.

Tip: Create an empathy map to better understand how the user feels.

Empathy map canvas
Empathy map canvas by

8. Validate and refine user journey

Journey maps should result in truthful narratives, not fairy tales. Even when a user journey is based on user research, it’s vital to validate it. Use the information from usability testing sessions and app analytics to be sure that your journey resembles a real use case.
Gather and analyze information about your users on a regular basis. For example, user feedback is something that can be used to improve your understanding of the user journey.

Conclusion

It’s important to remember that the goal of creating a user journey map is to create a shared vision. That’s why once a user journey map is created, share it with your peers. Make it possible for everyone in your team to look at the entire experience from the user’s standpoint and user this information while crafting a product.



Phase
Step
Actor
Action / Interaction
Touchpoint / Channel
Ownership
User Intent
Pain Points
Emotion
Job Creation & Awareness
1
User
Submit job using approved DAG template
Airflow Prod UI
User
Quickly create job
None
😃
Job Creation & Awareness
2
System
Show warning: BI-Ops registration required in X hours
Airflow UI banner / toast
Airflow Platform
Understand expectations
Message may be ignored
🙂
Job Creation & Awareness
3
System
Job created in Production
Airflow backend
Airflow Platform
Start execution
No enforcement yet
🙂
Testing & Validation Window
4
User
Run & validate job
Airflow UI, logs
User
Ensure correctness
Debugging effort
🙂
Testing & Validation Window
5
System
Auto-disable job in Stage after X days
Scheduler / Cron
Airflow Platform
Force timely testing
Deadline pressure
😐
Registration via BI-Ops
6
User
Navigate to BI-Ops registration UI
ServiceNow / Custom UI
User
Make job compliant
Context switch
😐
Registration via BI-Ops
7
User
Enter job ID, CHG, source & target datasets
Registration form
User
Complete governance
Manual entry errors
😟
Registration via BI-Ops
8
User
Submit registration
UI submit
User
Trigger approval
Waiting for result
😐
Registration via BI-Ops
9
System
Trigger BI-Ops pipeline
CI / workflow
BI-Ops
Automation
Backend dependency
😐
Registration via BI-Ops
10
System
Retrieve Airflow job metadata
Airflow API
BI-Ops
Accurate validation
API failures
😐
Registration via BI-Ops
11
System
Validate controls
Validation engine
BI-Ops
Ensure compliance
Hard failures
😠
Registration via BI-Ops
12
System
Display validation errors (if any)
UI error state
BI-Ops
Fix issues
Poor error clarity
😠
Registration via BI-Ops
13
System
Issue “Registered” tag
Metadata service
BI-Ops
Success confirmation
None
😌
Registration via BI-Ops
14
System
Tag Airflow job as registered
Airflow metadata
BI-Ops
Persist compliance
None
😌
Enforcement & Lifecycle
15
System
Deactivate unregistered jobs after X hours
Cron
Airflow Platform
Enforce policy
Business disruption
😠
Enforcement & Lifecycle
15.1
System
Notify Ops & Users of deactivation
Email / alert
Airflow Platform
Awareness
Late notification
😟
Enforcement & Lifecycle
15.2
System
Reactivate job if later registered
Cron / manual
Airflow + BI-Ops
Recover workload
Edge cases
😐
There are no rows in this table

Want to print your doc?
This is not the way.
Try clicking the ··· in the right corner or using a keyboard shortcut (
CtrlP
) instead.