SlideShare a Scribd company logo
1 of 35
Automated Data Synchronization:
Data Loader, Data Mirror,
& Beyond
Nathan Dickerson
Adam Crowe
Ryan McDole
Nathan Dickerson Adam Crowe
Senior Developer,
Bullhorn
Senior Developer,
Bullhorn
Ryan McDole
Senior Developer,
Bullhorn
Data Loader
Nathan Dickerson
Data Loader by the Numbers
• 166 - Corporations loaded since 2016
• 13M - Average records per corporation migration
• 1.6M - Average daily records loaded
• 91 - Resolved GitHub issues
• 50+ - Internal users (support, professional services...)
Development Timeline
2017
Product Development
Insert, Update, Delete.
100% Test Coverage
Full Integration Test Suite
2018
Desktop App (Beta)
Windows/Mac Desktop App
powered by Novo Elements
2020
Public Release
Public release of:
- Data Loader CLI
- Desktop App
2019
Backup / Performance
Backup and Revert
Faster loads using client
side cache
Performance
• Performance Today:
– Client-side cache all lookup calls
• Future:
– Bundle lookup calls across rows
– Bundle associations with insert/update
Backup and Revert
• Reverting Today:
– Backup one record per row before load
• Future:
– Backup multiple records per row
– Ad-hoc multi-field backup for update
Public Release
• Today:
– Server side rate limiting in version 4.4.0
• Future:
– Testing/refining of rate limiting
– Public release of Data Loader CLI
– Desktop app in Windows/Mac stores
Desktop App
• Today:
– Loading and history
• Future:
– Backup checkbox on load screen
– Field names from field maps
– Column mapping from any CSV file
Data Mirror
Adam Crowe
Data Mirror Features
• Clone all of your data
• Nightly Status Reports
• You provide the server, we provide the
software
• Updates are as simple as replacing a single
file
• Support handles any issues
Past Year Improvements
• Replication Optimizations
– Edit History
– Custom Object
– General Replication improvements
Data Mirror Workflow
Data Mirror Limitations
• REST API Rate limiting
• 7 day enablement window
• Not as performant as it could be
Beyond...
Ryan McDole
Bigger Picture
• REST API is the only access point for data
– All of our internal services use it
– All integrations use it
– All of our products use it
• Millions of REST calls daily
Data Sync API
Data Sync API
• In progress
• Independent API separate from our main
REST API
• Cached subscription model
– Retrieves events with relevant data
– Can get events that were already retrieved
Data Sync
Workflow
Event Conflation
• Kafka consumer picks up data events
– Corp
– Record type and id
– Updated fields
– Type of activity
• Store events in buckets on Redis
– 44_Candidate_123 -> firstName updated
Data Retrieval
• Event details are used to retrieve actual
data from the Bullhorn database to
generate a Data Sync object
Data Sync Object
{
corpId : 123
, id : 345
, entityType : ‘Candidate’
, updated : {
firstName : ‘Bob’
}
}
Data Sync API
• Data Sync object stored in MongoDB.
• When requested, retrieves new objects from
the db and returns to caller.
What about Data Mirror?
• Data Mirror now just asks the Data Sync API
for any new events
• Receives everything it needs from that one
response to then update it’s database.
– No follow up required
• Won’t hit main REST API!
• Independent Rate Limiting
Data Sync
Workflow
Enhanced Performance
• Significantly faster
– One REST call to retrieve relevant data for event
– Updating DB is significantly faster due
• Less resource requirements on your server
• Frees up REST servers to go even faster
• Countless possibilities:
– Everything
Beyond
Questions?
Data Loader Backup Slides
Why Data Loader?
• Basic Mechanics
– Based on Rest SDK project
• Supports entire Bullhorn data model (and growing)
– Supports To-One/To-Many fields
• Ex: primarySkills.id, primarySkills.name,
candidate.externalID
– Supports multiple associations in a single cell
• Ex: java;javascript;python
Why Data Loader?
• Data Integrity
– 100% Unit Test Coverage
• Twice the test code as production code
– Integration Tests
• Every command for every field on every entity
• Over 1,000 records tested for each code change
– Semver versioning using GitHub releases
Why Data Loader?
• Powerful Features
– Supports duplicate checking
• Ex: externalID (single) or firstName,lastName,email
– Supports Wildcard searching
• Ex: java* => java, javascript
– Allows up to 20,000 associations per cell
• Ex: large number of associated business sectors
– Supports single-byte, dual byte and BOM

More Related Content

What's hot

Azure IaaS-PaaS Migrations - Lessons Learned
Azure IaaS-PaaS Migrations - Lessons LearnedAzure IaaS-PaaS Migrations - Lessons Learned
Azure IaaS-PaaS Migrations - Lessons LearnedJohn Calvert
 
Cloudsolutionday 2016: Getting Started with Severless Architecture
Cloudsolutionday 2016: Getting Started with Severless ArchitectureCloudsolutionday 2016: Getting Started with Severless Architecture
Cloudsolutionday 2016: Getting Started with Severless ArchitectureAWS Vietnam Community
 
Introduction to AWS Kinesis
Introduction to AWS KinesisIntroduction to AWS Kinesis
Introduction to AWS KinesisSteven Ensslen
 
A (XPages) developers guide to Cloudant - MeetIT
A (XPages) developers guide to Cloudant - MeetITA (XPages) developers guide to Cloudant - MeetIT
A (XPages) developers guide to Cloudant - MeetITFrank van der Linden
 
Rev Your Engines: SharePoint Performance Best Practices
Rev Your Engines: SharePoint Performance Best PracticesRev Your Engines: SharePoint Performance Best Practices
Rev Your Engines: SharePoint Performance Best PracticesSPC Adriatics
 
ECS19 - Mike Ammerlaan - Microsoft Graph Data Connect
ECS19 - Mike Ammerlaan - Microsoft Graph Data ConnectECS19 - Mike Ammerlaan - Microsoft Graph Data Connect
ECS19 - Mike Ammerlaan - Microsoft Graph Data ConnectEuropean Collaboration Summit
 
NextGen IBM Cloud Monitoring and Logging
NextGen IBM Cloud Monitoring and LoggingNextGen IBM Cloud Monitoring and Logging
NextGen IBM Cloud Monitoring and LoggingNagesh Ramamoorthy
 
Qui Quaerit, Reperit. AWS Elasticsearch in Action
Qui Quaerit, Reperit. AWS Elasticsearch in ActionQui Quaerit, Reperit. AWS Elasticsearch in Action
Qui Quaerit, Reperit. AWS Elasticsearch in ActionGlobalLogic Ukraine
 
Using Kafka as a Database For Real-Time Transaction Processing | Chad Preisle...
Using Kafka as a Database For Real-Time Transaction Processing | Chad Preisle...Using Kafka as a Database For Real-Time Transaction Processing | Chad Preisle...
Using Kafka as a Database For Real-Time Transaction Processing | Chad Preisle...HostedbyConfluent
 
Salesforce winter 16 release
Salesforce winter 16 releaseSalesforce winter 16 release
Salesforce winter 16 releaseJitendra Zaa
 
AWS Kinesis - Streams, Firehose, Analytics
AWS Kinesis - Streams, Firehose, AnalyticsAWS Kinesis - Streams, Firehose, Analytics
AWS Kinesis - Streams, Firehose, AnalyticsSerhat Can
 
Meetup #3: Migrating an Oracle Application from on-premise to AWS
Meetup #3: Migrating an Oracle Application from on-premise to AWSMeetup #3: Migrating an Oracle Application from on-premise to AWS
Meetup #3: Migrating an Oracle Application from on-premise to AWSAWS Vietnam Community
 
The New Way of Configuring Grace Periods for Windowed Operations in Kafka Str...
The New Way of Configuring Grace Periods for Windowed Operations in Kafka Str...The New Way of Configuring Grace Periods for Windowed Operations in Kafka Str...
The New Way of Configuring Grace Periods for Windowed Operations in Kafka Str...HostedbyConfluent
 
MongoDB World 2018: Using Puppet, Ansible and Ops Manager to Create Your Own ...
MongoDB World 2018: Using Puppet, Ansible and Ops Manager to Create Your Own ...MongoDB World 2018: Using Puppet, Ansible and Ops Manager to Create Your Own ...
MongoDB World 2018: Using Puppet, Ansible and Ops Manager to Create Your Own ...MongoDB
 
Multi-Tenant Log Analytics SaaS Service using Solr: Presented by Chirag Gupta...
Multi-Tenant Log Analytics SaaS Service using Solr: Presented by Chirag Gupta...Multi-Tenant Log Analytics SaaS Service using Solr: Presented by Chirag Gupta...
Multi-Tenant Log Analytics SaaS Service using Solr: Presented by Chirag Gupta...Lucidworks
 
Adobe Spark Meetup - 9/19/2018 - San Jose, CA
Adobe Spark Meetup - 9/19/2018 - San Jose, CAAdobe Spark Meetup - 9/19/2018 - San Jose, CA
Adobe Spark Meetup - 9/19/2018 - San Jose, CAJaemi Bremner
 
Cosmos DB and Azure Functions A serverless database processing.pptx
Cosmos DB and Azure Functions  A serverless database processing.pptxCosmos DB and Azure Functions  A serverless database processing.pptx
Cosmos DB and Azure Functions A serverless database processing.pptxicebeam7
 
CouchbasetoHadoop_Matt_Michael_Justin v4
CouchbasetoHadoop_Matt_Michael_Justin v4CouchbasetoHadoop_Matt_Michael_Justin v4
CouchbasetoHadoop_Matt_Michael_Justin v4Michael Kehoe
 
[Collinge] Office 365 Enterprise Network Connectivity Using Published Office ...
[Collinge] Office 365 Enterprise Network Connectivity Using Published Office ...[Collinge] Office 365 Enterprise Network Connectivity Using Published Office ...
[Collinge] Office 365 Enterprise Network Connectivity Using Published Office ...European Collaboration Summit
 
Payara Micro from Raspberry Pi to Cloud
Payara Micro from Raspberry Pi to CloudPayara Micro from Raspberry Pi to Cloud
Payara Micro from Raspberry Pi to CloudPayara
 

What's hot (20)

Azure IaaS-PaaS Migrations - Lessons Learned
Azure IaaS-PaaS Migrations - Lessons LearnedAzure IaaS-PaaS Migrations - Lessons Learned
Azure IaaS-PaaS Migrations - Lessons Learned
 
Cloudsolutionday 2016: Getting Started with Severless Architecture
Cloudsolutionday 2016: Getting Started with Severless ArchitectureCloudsolutionday 2016: Getting Started with Severless Architecture
Cloudsolutionday 2016: Getting Started with Severless Architecture
 
Introduction to AWS Kinesis
Introduction to AWS KinesisIntroduction to AWS Kinesis
Introduction to AWS Kinesis
 
A (XPages) developers guide to Cloudant - MeetIT
A (XPages) developers guide to Cloudant - MeetITA (XPages) developers guide to Cloudant - MeetIT
A (XPages) developers guide to Cloudant - MeetIT
 
Rev Your Engines: SharePoint Performance Best Practices
Rev Your Engines: SharePoint Performance Best PracticesRev Your Engines: SharePoint Performance Best Practices
Rev Your Engines: SharePoint Performance Best Practices
 
ECS19 - Mike Ammerlaan - Microsoft Graph Data Connect
ECS19 - Mike Ammerlaan - Microsoft Graph Data ConnectECS19 - Mike Ammerlaan - Microsoft Graph Data Connect
ECS19 - Mike Ammerlaan - Microsoft Graph Data Connect
 
NextGen IBM Cloud Monitoring and Logging
NextGen IBM Cloud Monitoring and LoggingNextGen IBM Cloud Monitoring and Logging
NextGen IBM Cloud Monitoring and Logging
 
Qui Quaerit, Reperit. AWS Elasticsearch in Action
Qui Quaerit, Reperit. AWS Elasticsearch in ActionQui Quaerit, Reperit. AWS Elasticsearch in Action
Qui Quaerit, Reperit. AWS Elasticsearch in Action
 
Using Kafka as a Database For Real-Time Transaction Processing | Chad Preisle...
Using Kafka as a Database For Real-Time Transaction Processing | Chad Preisle...Using Kafka as a Database For Real-Time Transaction Processing | Chad Preisle...
Using Kafka as a Database For Real-Time Transaction Processing | Chad Preisle...
 
Salesforce winter 16 release
Salesforce winter 16 releaseSalesforce winter 16 release
Salesforce winter 16 release
 
AWS Kinesis - Streams, Firehose, Analytics
AWS Kinesis - Streams, Firehose, AnalyticsAWS Kinesis - Streams, Firehose, Analytics
AWS Kinesis - Streams, Firehose, Analytics
 
Meetup #3: Migrating an Oracle Application from on-premise to AWS
Meetup #3: Migrating an Oracle Application from on-premise to AWSMeetup #3: Migrating an Oracle Application from on-premise to AWS
Meetup #3: Migrating an Oracle Application from on-premise to AWS
 
The New Way of Configuring Grace Periods for Windowed Operations in Kafka Str...
The New Way of Configuring Grace Periods for Windowed Operations in Kafka Str...The New Way of Configuring Grace Periods for Windowed Operations in Kafka Str...
The New Way of Configuring Grace Periods for Windowed Operations in Kafka Str...
 
MongoDB World 2018: Using Puppet, Ansible and Ops Manager to Create Your Own ...
MongoDB World 2018: Using Puppet, Ansible and Ops Manager to Create Your Own ...MongoDB World 2018: Using Puppet, Ansible and Ops Manager to Create Your Own ...
MongoDB World 2018: Using Puppet, Ansible and Ops Manager to Create Your Own ...
 
Multi-Tenant Log Analytics SaaS Service using Solr: Presented by Chirag Gupta...
Multi-Tenant Log Analytics SaaS Service using Solr: Presented by Chirag Gupta...Multi-Tenant Log Analytics SaaS Service using Solr: Presented by Chirag Gupta...
Multi-Tenant Log Analytics SaaS Service using Solr: Presented by Chirag Gupta...
 
Adobe Spark Meetup - 9/19/2018 - San Jose, CA
Adobe Spark Meetup - 9/19/2018 - San Jose, CAAdobe Spark Meetup - 9/19/2018 - San Jose, CA
Adobe Spark Meetup - 9/19/2018 - San Jose, CA
 
Cosmos DB and Azure Functions A serverless database processing.pptx
Cosmos DB and Azure Functions  A serverless database processing.pptxCosmos DB and Azure Functions  A serverless database processing.pptx
Cosmos DB and Azure Functions A serverless database processing.pptx
 
CouchbasetoHadoop_Matt_Michael_Justin v4
CouchbasetoHadoop_Matt_Michael_Justin v4CouchbasetoHadoop_Matt_Michael_Justin v4
CouchbasetoHadoop_Matt_Michael_Justin v4
 
[Collinge] Office 365 Enterprise Network Connectivity Using Published Office ...
[Collinge] Office 365 Enterprise Network Connectivity Using Published Office ...[Collinge] Office 365 Enterprise Network Connectivity Using Published Office ...
[Collinge] Office 365 Enterprise Network Connectivity Using Published Office ...
 
Payara Micro from Raspberry Pi to Cloud
Payara Micro from Raspberry Pi to CloudPayara Micro from Raspberry Pi to Cloud
Payara Micro from Raspberry Pi to Cloud
 

Similar to Automated Data Synchronization: Data Loader, Data Mirror & Beyond

Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog
 Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog
Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDogRedis Labs
 
CCI2018 - Real-time dashboard whatif analysis
CCI2018 - Real-time dashboard whatif analysisCCI2018 - Real-time dashboard whatif analysis
CCI2018 - Real-time dashboard whatif analysiswalk2talk srl
 
DataEngConf SF16 - Scalable and Reliable Logging at Pinterest
DataEngConf SF16 - Scalable and Reliable Logging at PinterestDataEngConf SF16 - Scalable and Reliable Logging at Pinterest
DataEngConf SF16 - Scalable and Reliable Logging at PinterestHakka Labs
 
Scalable and Reliable Logging at Pinterest
Scalable and Reliable Logging at PinterestScalable and Reliable Logging at Pinterest
Scalable and Reliable Logging at PinterestKrishna Gade
 
Ruslan Belkin And Sean Dawson on LinkedIn's Network Updates Uncovered
Ruslan Belkin And Sean Dawson on LinkedIn's Network Updates UncoveredRuslan Belkin And Sean Dawson on LinkedIn's Network Updates Uncovered
Ruslan Belkin And Sean Dawson on LinkedIn's Network Updates UncoveredLinkedIn
 
Evolving s3 story
Evolving s3 storyEvolving s3 story
Evolving s3 storyAvi Perez
 
Data Vault Automation at the Bijenkorf
Data Vault Automation at the BijenkorfData Vault Automation at the Bijenkorf
Data Vault Automation at the BijenkorfRob Winters
 
MongoDB .local Houston 2019: Building an IoT Streaming Analytics Platform to ...
MongoDB .local Houston 2019: Building an IoT Streaming Analytics Platform to ...MongoDB .local Houston 2019: Building an IoT Streaming Analytics Platform to ...
MongoDB .local Houston 2019: Building an IoT Streaming Analytics Platform to ...MongoDB
 
Google Cloud Platform as a Backend Solution for your Product
Google Cloud Platform as a Backend Solution for your ProductGoogle Cloud Platform as a Backend Solution for your Product
Google Cloud Platform as a Backend Solution for your ProductSergey Smetanin
 
DC Migration and Hadoop Scale For Big Billion Days
DC Migration and Hadoop Scale For Big Billion DaysDC Migration and Hadoop Scale For Big Billion Days
DC Migration and Hadoop Scale For Big Billion DaysRahul Agarwal
 
AOUG_11Nov2016_Challenges_with_EBS12_2
AOUG_11Nov2016_Challenges_with_EBS12_2AOUG_11Nov2016_Challenges_with_EBS12_2
AOUG_11Nov2016_Challenges_with_EBS12_2Sean Braymen
 
SharePoint Saturday The Conference 2011 - SP2010 Performance
SharePoint Saturday The Conference 2011 - SP2010 PerformanceSharePoint Saturday The Conference 2011 - SP2010 Performance
SharePoint Saturday The Conference 2011 - SP2010 PerformanceBrian Culver
 
Mainframe Application Testing both With and Without Live Data
Mainframe Application Testing both With and Without Live DataMainframe Application Testing both With and Without Live Data
Mainframe Application Testing both With and Without Live DataDevOps for Enterprise Systems
 
Data at Scale - Michael Peacock, Cloud Connect 2012
Data at Scale - Michael Peacock, Cloud Connect 2012Data at Scale - Michael Peacock, Cloud Connect 2012
Data at Scale - Michael Peacock, Cloud Connect 2012Michael Peacock
 
Accelerate Develoment with VIrtual Data
Accelerate Develoment with VIrtual DataAccelerate Develoment with VIrtual Data
Accelerate Develoment with VIrtual DataKyle Hailey
 
Building cloud native data microservice
Building cloud native data microserviceBuilding cloud native data microservice
Building cloud native data microserviceNilanjan Roy
 
SharePoint Saturday San Antonio: SharePoint 2010 Performance
SharePoint Saturday San Antonio: SharePoint 2010 PerformanceSharePoint Saturday San Antonio: SharePoint 2010 Performance
SharePoint Saturday San Antonio: SharePoint 2010 PerformanceBrian Culver
 
Getting Started with Amazon Redshift
Getting Started with Amazon RedshiftGetting Started with Amazon Redshift
Getting Started with Amazon RedshiftAmazon Web Services
 

Similar to Automated Data Synchronization: Data Loader, Data Mirror & Beyond (20)

Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog
 Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog
Monitoring and Scaling Redis at DataDog - Ilan Rabinovitch, DataDog
 
CCI2018 - Real-time dashboard whatif analysis
CCI2018 - Real-time dashboard whatif analysisCCI2018 - Real-time dashboard whatif analysis
CCI2018 - Real-time dashboard whatif analysis
 
DataEngConf SF16 - Scalable and Reliable Logging at Pinterest
DataEngConf SF16 - Scalable and Reliable Logging at PinterestDataEngConf SF16 - Scalable and Reliable Logging at Pinterest
DataEngConf SF16 - Scalable and Reliable Logging at Pinterest
 
Scalable and Reliable Logging at Pinterest
Scalable and Reliable Logging at PinterestScalable and Reliable Logging at Pinterest
Scalable and Reliable Logging at Pinterest
 
Ruslan Belkin And Sean Dawson on LinkedIn's Network Updates Uncovered
Ruslan Belkin And Sean Dawson on LinkedIn's Network Updates UncoveredRuslan Belkin And Sean Dawson on LinkedIn's Network Updates Uncovered
Ruslan Belkin And Sean Dawson on LinkedIn's Network Updates Uncovered
 
Evolving s3 story
Evolving s3 storyEvolving s3 story
Evolving s3 story
 
Data Vault Automation at the Bijenkorf
Data Vault Automation at the BijenkorfData Vault Automation at the Bijenkorf
Data Vault Automation at the Bijenkorf
 
MongoDB .local Houston 2019: Building an IoT Streaming Analytics Platform to ...
MongoDB .local Houston 2019: Building an IoT Streaming Analytics Platform to ...MongoDB .local Houston 2019: Building an IoT Streaming Analytics Platform to ...
MongoDB .local Houston 2019: Building an IoT Streaming Analytics Platform to ...
 
Google Cloud Platform as a Backend Solution for your Product
Google Cloud Platform as a Backend Solution for your ProductGoogle Cloud Platform as a Backend Solution for your Product
Google Cloud Platform as a Backend Solution for your Product
 
DC Migration and Hadoop Scale For Big Billion Days
DC Migration and Hadoop Scale For Big Billion DaysDC Migration and Hadoop Scale For Big Billion Days
DC Migration and Hadoop Scale For Big Billion Days
 
AOUG_11Nov2016_Challenges_with_EBS12_2
AOUG_11Nov2016_Challenges_with_EBS12_2AOUG_11Nov2016_Challenges_with_EBS12_2
AOUG_11Nov2016_Challenges_with_EBS12_2
 
SharePoint Saturday The Conference 2011 - SP2010 Performance
SharePoint Saturday The Conference 2011 - SP2010 PerformanceSharePoint Saturday The Conference 2011 - SP2010 Performance
SharePoint Saturday The Conference 2011 - SP2010 Performance
 
Mainframe Application Testing both With and Without Live Data
Mainframe Application Testing both With and Without Live DataMainframe Application Testing both With and Without Live Data
Mainframe Application Testing both With and Without Live Data
 
Serverless SQL
Serverless SQLServerless SQL
Serverless SQL
 
System center seminar presentation
System center seminar presentationSystem center seminar presentation
System center seminar presentation
 
Data at Scale - Michael Peacock, Cloud Connect 2012
Data at Scale - Michael Peacock, Cloud Connect 2012Data at Scale - Michael Peacock, Cloud Connect 2012
Data at Scale - Michael Peacock, Cloud Connect 2012
 
Accelerate Develoment with VIrtual Data
Accelerate Develoment with VIrtual DataAccelerate Develoment with VIrtual Data
Accelerate Develoment with VIrtual Data
 
Building cloud native data microservice
Building cloud native data microserviceBuilding cloud native data microservice
Building cloud native data microservice
 
SharePoint Saturday San Antonio: SharePoint 2010 Performance
SharePoint Saturday San Antonio: SharePoint 2010 PerformanceSharePoint Saturday San Antonio: SharePoint 2010 Performance
SharePoint Saturday San Antonio: SharePoint 2010 Performance
 
Getting Started with Amazon Redshift
Getting Started with Amazon RedshiftGetting Started with Amazon Redshift
Getting Started with Amazon Redshift
 

More from JeremyOtt5

Start to Finish: Bullhorn One and its Benefits for Staffing
Start to Finish: Bullhorn One and its Benefits for StaffingStart to Finish: Bullhorn One and its Benefits for Staffing
Start to Finish: Bullhorn One and its Benefits for StaffingJeremyOtt5
 
Moving to the Lightning Experience: An Action Plan
Moving to the Lightning Experience: An Action PlanMoving to the Lightning Experience: An Action Plan
Moving to the Lightning Experience: An Action PlanJeremyOtt5
 
The Latest and Greatest: Updates to Bullhorn for Salesforce
The Latest and Greatest: Updates to Bullhorn for SalesforceThe Latest and Greatest: Updates to Bullhorn for Salesforce
The Latest and Greatest: Updates to Bullhorn for SalesforceJeremyOtt5
 
The Business Case for Social Innovation from Market Leaders
The Business Case for Social Innovation from Market LeadersThe Business Case for Social Innovation from Market Leaders
The Business Case for Social Innovation from Market LeadersJeremyOtt5
 
Practical Applications of AI: Real World Examples
Practical Applications of AI: Real World ExamplesPractical Applications of AI: Real World Examples
Practical Applications of AI: Real World ExamplesJeremyOtt5
 
Onboarding Revisited: Understanding the Latest Release
Onboarding Revisited: Understanding the Latest ReleaseOnboarding Revisited: Understanding the Latest Release
Onboarding Revisited: Understanding the Latest ReleaseJeremyOtt5
 
Navigating the Changing Staffing Industry Landscape: Threats and Opportunities
Navigating the Changing Staffing Industry Landscape:  Threats and OpportunitiesNavigating the Changing Staffing Industry Landscape:  Threats and Opportunities
Navigating the Changing Staffing Industry Landscape: Threats and OpportunitiesJeremyOtt5
 
Make Your Data Work For You
Make Your Data Work For YouMake Your Data Work For You
Make Your Data Work For YouJeremyOtt5
 
Invenias Update: Roadmap and Vision
Invenias Update: Roadmap and VisionInvenias Update: Roadmap and Vision
Invenias Update: Roadmap and VisionJeremyOtt5
 
Introducing the Bullhorn Onboarding API
Introducing the Bullhorn Onboarding APIIntroducing the Bullhorn Onboarding API
Introducing the Bullhorn Onboarding APIJeremyOtt5
 
How to Get the Best MoBull Experience
How to Get the Best MoBull ExperienceHow to Get the Best MoBull Experience
How to Get the Best MoBull ExperienceJeremyOtt5
 
Extending Your Reach with Career Portal and Search Engine Optimization
Extending Your Reach with Career Portal and Search Engine OptimizationExtending Your Reach with Career Portal and Search Engine Optimization
Extending Your Reach with Career Portal and Search Engine OptimizationJeremyOtt5
 
Evolution of the REST API
Evolution of the REST APIEvolution of the REST API
Evolution of the REST APIJeremyOtt5
 
Digital Transformation Through Change Management: Overcoming Fear and Risk
Digital Transformation Through Change Management: Overcoming Fear and RiskDigital Transformation Through Change Management: Overcoming Fear and Risk
Digital Transformation Through Change Management: Overcoming Fear and RiskJeremyOtt5
 
Beyond Lip Service: Turning Culture into a Business Driver
Beyond Lip Service: Turning Culture into a Business DriverBeyond Lip Service: Turning Culture into a Business Driver
Beyond Lip Service: Turning Culture into a Business DriverJeremyOtt5
 
Automating Workflows Through Bullhorn and Partners
Automating Workflows Through Bullhorn and PartnersAutomating Workflows Through Bullhorn and Partners
Automating Workflows Through Bullhorn and PartnersJeremyOtt5
 
API Developer Training: Insights for Integrations
API Developer Training: Insights for IntegrationsAPI Developer Training: Insights for Integrations
API Developer Training: Insights for IntegrationsJeremyOtt5
 

More from JeremyOtt5 (17)

Start to Finish: Bullhorn One and its Benefits for Staffing
Start to Finish: Bullhorn One and its Benefits for StaffingStart to Finish: Bullhorn One and its Benefits for Staffing
Start to Finish: Bullhorn One and its Benefits for Staffing
 
Moving to the Lightning Experience: An Action Plan
Moving to the Lightning Experience: An Action PlanMoving to the Lightning Experience: An Action Plan
Moving to the Lightning Experience: An Action Plan
 
The Latest and Greatest: Updates to Bullhorn for Salesforce
The Latest and Greatest: Updates to Bullhorn for SalesforceThe Latest and Greatest: Updates to Bullhorn for Salesforce
The Latest and Greatest: Updates to Bullhorn for Salesforce
 
The Business Case for Social Innovation from Market Leaders
The Business Case for Social Innovation from Market LeadersThe Business Case for Social Innovation from Market Leaders
The Business Case for Social Innovation from Market Leaders
 
Practical Applications of AI: Real World Examples
Practical Applications of AI: Real World ExamplesPractical Applications of AI: Real World Examples
Practical Applications of AI: Real World Examples
 
Onboarding Revisited: Understanding the Latest Release
Onboarding Revisited: Understanding the Latest ReleaseOnboarding Revisited: Understanding the Latest Release
Onboarding Revisited: Understanding the Latest Release
 
Navigating the Changing Staffing Industry Landscape: Threats and Opportunities
Navigating the Changing Staffing Industry Landscape:  Threats and OpportunitiesNavigating the Changing Staffing Industry Landscape:  Threats and Opportunities
Navigating the Changing Staffing Industry Landscape: Threats and Opportunities
 
Make Your Data Work For You
Make Your Data Work For YouMake Your Data Work For You
Make Your Data Work For You
 
Invenias Update: Roadmap and Vision
Invenias Update: Roadmap and VisionInvenias Update: Roadmap and Vision
Invenias Update: Roadmap and Vision
 
Introducing the Bullhorn Onboarding API
Introducing the Bullhorn Onboarding APIIntroducing the Bullhorn Onboarding API
Introducing the Bullhorn Onboarding API
 
How to Get the Best MoBull Experience
How to Get the Best MoBull ExperienceHow to Get the Best MoBull Experience
How to Get the Best MoBull Experience
 
Extending Your Reach with Career Portal and Search Engine Optimization
Extending Your Reach with Career Portal and Search Engine OptimizationExtending Your Reach with Career Portal and Search Engine Optimization
Extending Your Reach with Career Portal and Search Engine Optimization
 
Evolution of the REST API
Evolution of the REST APIEvolution of the REST API
Evolution of the REST API
 
Digital Transformation Through Change Management: Overcoming Fear and Risk
Digital Transformation Through Change Management: Overcoming Fear and RiskDigital Transformation Through Change Management: Overcoming Fear and Risk
Digital Transformation Through Change Management: Overcoming Fear and Risk
 
Beyond Lip Service: Turning Culture into a Business Driver
Beyond Lip Service: Turning Culture into a Business DriverBeyond Lip Service: Turning Culture into a Business Driver
Beyond Lip Service: Turning Culture into a Business Driver
 
Automating Workflows Through Bullhorn and Partners
Automating Workflows Through Bullhorn and PartnersAutomating Workflows Through Bullhorn and Partners
Automating Workflows Through Bullhorn and Partners
 
API Developer Training: Insights for Integrations
API Developer Training: Insights for IntegrationsAPI Developer Training: Insights for Integrations
API Developer Training: Insights for Integrations
 

Recently uploaded

Intern Welcome LinkedIn Periodical (1).pdf
Intern Welcome LinkedIn Periodical (1).pdfIntern Welcome LinkedIn Periodical (1).pdf
Intern Welcome LinkedIn Periodical (1).pdfmarketing659039
 
Ways to Make the Most of Temporary Part Time Jobs
Ways to Make the Most of Temporary Part Time JobsWays to Make the Most of Temporary Part Time Jobs
Ways to Make the Most of Temporary Part Time JobsSnapJob
 
Copy of Periodical - Employee Spotlight (8).pdf
Copy of Periodical - Employee Spotlight (8).pdfCopy of Periodical - Employee Spotlight (8).pdf
Copy of Periodical - Employee Spotlight (8).pdfmarketing659039
 
Employee Engagement Trend Analysis.pptx.
Employee Engagement Trend Analysis.pptx.Employee Engagement Trend Analysis.pptx.
Employee Engagement Trend Analysis.pptx.ShrayasiRoy
 
Authentic No 1 Amil Baba In Pakistan Amil Baba In Faisalabad Amil Baba In Kar...
Authentic No 1 Amil Baba In Pakistan Amil Baba In Faisalabad Amil Baba In Kar...Authentic No 1 Amil Baba In Pakistan Amil Baba In Faisalabad Amil Baba In Kar...
Authentic No 1 Amil Baba In Pakistan Amil Baba In Faisalabad Amil Baba In Kar...Authentic No 1 Amil Baba In Pakistan
 
Webinar - Payscale Innovation Unleashed: New features and data evolving the c...
Webinar - Payscale Innovation Unleashed: New features and data evolving the c...Webinar - Payscale Innovation Unleashed: New features and data evolving the c...
Webinar - Payscale Innovation Unleashed: New features and data evolving the c...PayScale, Inc.
 
Public Relations jobs in New York City with Phifer & Company
Public Relations jobs in New York City with Phifer & CompanyPublic Relations jobs in New York City with Phifer & Company
Public Relations jobs in New York City with Phifer & CompanyPhiferCompany
 
Austin Recruiter Network Meeting April 25, 2024
Austin Recruiter Network Meeting April 25, 2024Austin Recruiter Network Meeting April 25, 2024
Austin Recruiter Network Meeting April 25, 2024Dan Medlin
 
Unlocking Organizational Potential: The Essence of Human Resource Management ...
Unlocking Organizational Potential: The Essence of Human Resource Management ...Unlocking Organizational Potential: The Essence of Human Resource Management ...
Unlocking Organizational Potential: The Essence of Human Resource Management ...Sabuj Ahmed
 
Creative Director vs. Design Director: Key Differences for Recruiters
Creative Director vs. Design Director: Key Differences for RecruitersCreative Director vs. Design Director: Key Differences for Recruiters
Creative Director vs. Design Director: Key Differences for RecruitersHireQuotient
 
15 Best Employee Retention Strategies.pdf
15 Best Employee Retention Strategies.pdf15 Best Employee Retention Strategies.pdf
15 Best Employee Retention Strategies.pdfAlex Vate
 
The Great American Payday Prepare for a (Relatively) Bumpy Ride.pdf
The Great American Payday Prepare for a (Relatively) Bumpy Ride.pdfThe Great American Payday Prepare for a (Relatively) Bumpy Ride.pdf
The Great American Payday Prepare for a (Relatively) Bumpy Ride.pdfJasper Colin
 
Escorts in Lucknow 9548273370 WhatsApp visit your hotel or office Independent...
Escorts in Lucknow 9548273370 WhatsApp visit your hotel or office Independent...Escorts in Lucknow 9548273370 WhatsApp visit your hotel or office Independent...
Escorts in Lucknow 9548273370 WhatsApp visit your hotel or office Independent...makika9823
 
Model Call Girl in Keshav Puram Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Keshav Puram Delhi reach out to us at 🔝8264348440🔝Model Call Girl in Keshav Puram Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Keshav Puram Delhi reach out to us at 🔝8264348440🔝soniya singh
 
Employee Roles & Responsibilities: Driving Organizational Success
Employee Roles & Responsibilities: Driving Organizational SuccessEmployee Roles & Responsibilities: Driving Organizational Success
Employee Roles & Responsibilities: Driving Organizational SuccessHireQuotient
 

Recently uploaded (19)

Intern Welcome LinkedIn Periodical (1).pdf
Intern Welcome LinkedIn Periodical (1).pdfIntern Welcome LinkedIn Periodical (1).pdf
Intern Welcome LinkedIn Periodical (1).pdf
 
Ways to Make the Most of Temporary Part Time Jobs
Ways to Make the Most of Temporary Part Time JobsWays to Make the Most of Temporary Part Time Jobs
Ways to Make the Most of Temporary Part Time Jobs
 
Copy of Periodical - Employee Spotlight (8).pdf
Copy of Periodical - Employee Spotlight (8).pdfCopy of Periodical - Employee Spotlight (8).pdf
Copy of Periodical - Employee Spotlight (8).pdf
 
Cheap Rate ➥8448380779 ▻Call Girls In Sector 29 Gurgaon
Cheap Rate ➥8448380779 ▻Call Girls In Sector 29 GurgaonCheap Rate ➥8448380779 ▻Call Girls In Sector 29 Gurgaon
Cheap Rate ➥8448380779 ▻Call Girls In Sector 29 Gurgaon
 
Employee Engagement Trend Analysis.pptx.
Employee Engagement Trend Analysis.pptx.Employee Engagement Trend Analysis.pptx.
Employee Engagement Trend Analysis.pptx.
 
Authentic No 1 Amil Baba In Pakistan Amil Baba In Faisalabad Amil Baba In Kar...
Authentic No 1 Amil Baba In Pakistan Amil Baba In Faisalabad Amil Baba In Kar...Authentic No 1 Amil Baba In Pakistan Amil Baba In Faisalabad Amil Baba In Kar...
Authentic No 1 Amil Baba In Pakistan Amil Baba In Faisalabad Amil Baba In Kar...
 
Webinar - Payscale Innovation Unleashed: New features and data evolving the c...
Webinar - Payscale Innovation Unleashed: New features and data evolving the c...Webinar - Payscale Innovation Unleashed: New features and data evolving the c...
Webinar - Payscale Innovation Unleashed: New features and data evolving the c...
 
Public Relations jobs in New York City with Phifer & Company
Public Relations jobs in New York City with Phifer & CompanyPublic Relations jobs in New York City with Phifer & Company
Public Relations jobs in New York City with Phifer & Company
 
Austin Recruiter Network Meeting April 25, 2024
Austin Recruiter Network Meeting April 25, 2024Austin Recruiter Network Meeting April 25, 2024
Austin Recruiter Network Meeting April 25, 2024
 
Unlocking Organizational Potential: The Essence of Human Resource Management ...
Unlocking Organizational Potential: The Essence of Human Resource Management ...Unlocking Organizational Potential: The Essence of Human Resource Management ...
Unlocking Organizational Potential: The Essence of Human Resource Management ...
 
Creative Director vs. Design Director: Key Differences for Recruiters
Creative Director vs. Design Director: Key Differences for RecruitersCreative Director vs. Design Director: Key Differences for Recruiters
Creative Director vs. Design Director: Key Differences for Recruiters
 
Hot Sexy call girls in Preet Vihar🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in  Preet Vihar🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in  Preet Vihar🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Preet Vihar🔝 9953056974 🔝 Delhi escort Service
 
15 Best Employee Retention Strategies.pdf
15 Best Employee Retention Strategies.pdf15 Best Employee Retention Strategies.pdf
15 Best Employee Retention Strategies.pdf
 
The Great American Payday Prepare for a (Relatively) Bumpy Ride.pdf
The Great American Payday Prepare for a (Relatively) Bumpy Ride.pdfThe Great American Payday Prepare for a (Relatively) Bumpy Ride.pdf
The Great American Payday Prepare for a (Relatively) Bumpy Ride.pdf
 
Escorts in Lucknow 9548273370 WhatsApp visit your hotel or office Independent...
Escorts in Lucknow 9548273370 WhatsApp visit your hotel or office Independent...Escorts in Lucknow 9548273370 WhatsApp visit your hotel or office Independent...
Escorts in Lucknow 9548273370 WhatsApp visit your hotel or office Independent...
 
Model Call Girl in Keshav Puram Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Keshav Puram Delhi reach out to us at 🔝8264348440🔝Model Call Girl in Keshav Puram Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Keshav Puram Delhi reach out to us at 🔝8264348440🔝
 
9953330565 Low Rate Call Girls In Vijay Nagar Delhi NCR
9953330565 Low Rate Call Girls In Vijay Nagar Delhi NCR9953330565 Low Rate Call Girls In Vijay Nagar Delhi NCR
9953330565 Low Rate Call Girls In Vijay Nagar Delhi NCR
 
Employee Roles & Responsibilities: Driving Organizational Success
Employee Roles & Responsibilities: Driving Organizational SuccessEmployee Roles & Responsibilities: Driving Organizational Success
Employee Roles & Responsibilities: Driving Organizational Success
 
Call Girls in Subhash Nagar ⎝⎝9953056974⎝⎝ Escort Delhi NCR
Call Girls in  Subhash Nagar ⎝⎝9953056974⎝⎝ Escort Delhi NCRCall Girls in  Subhash Nagar ⎝⎝9953056974⎝⎝ Escort Delhi NCR
Call Girls in Subhash Nagar ⎝⎝9953056974⎝⎝ Escort Delhi NCR
 

Automated Data Synchronization: Data Loader, Data Mirror & Beyond

  • 1. Automated Data Synchronization: Data Loader, Data Mirror, & Beyond Nathan Dickerson Adam Crowe Ryan McDole
  • 2. Nathan Dickerson Adam Crowe Senior Developer, Bullhorn Senior Developer, Bullhorn Ryan McDole Senior Developer, Bullhorn
  • 4.
  • 5. Data Loader by the Numbers • 166 - Corporations loaded since 2016 • 13M - Average records per corporation migration • 1.6M - Average daily records loaded • 91 - Resolved GitHub issues • 50+ - Internal users (support, professional services...)
  • 6. Development Timeline 2017 Product Development Insert, Update, Delete. 100% Test Coverage Full Integration Test Suite 2018 Desktop App (Beta) Windows/Mac Desktop App powered by Novo Elements 2020 Public Release Public release of: - Data Loader CLI - Desktop App 2019 Backup / Performance Backup and Revert Faster loads using client side cache
  • 7. Performance • Performance Today: – Client-side cache all lookup calls • Future: – Bundle lookup calls across rows – Bundle associations with insert/update
  • 8. Backup and Revert • Reverting Today: – Backup one record per row before load • Future: – Backup multiple records per row – Ad-hoc multi-field backup for update
  • 9. Public Release • Today: – Server side rate limiting in version 4.4.0 • Future: – Testing/refining of rate limiting – Public release of Data Loader CLI – Desktop app in Windows/Mac stores
  • 10.
  • 11. Desktop App • Today: – Loading and history • Future: – Backup checkbox on load screen – Field names from field maps – Column mapping from any CSV file
  • 13.
  • 14. Data Mirror Features • Clone all of your data • Nightly Status Reports • You provide the server, we provide the software • Updates are as simple as replacing a single file • Support handles any issues
  • 15. Past Year Improvements • Replication Optimizations – Edit History – Custom Object – General Replication improvements
  • 17. Data Mirror Limitations • REST API Rate limiting • 7 day enablement window • Not as performant as it could be
  • 19. Bigger Picture • REST API is the only access point for data – All of our internal services use it – All integrations use it – All of our products use it • Millions of REST calls daily
  • 21. Data Sync API • In progress • Independent API separate from our main REST API • Cached subscription model – Retrieves events with relevant data – Can get events that were already retrieved
  • 23. Event Conflation • Kafka consumer picks up data events – Corp – Record type and id – Updated fields – Type of activity • Store events in buckets on Redis – 44_Candidate_123 -> firstName updated
  • 24. Data Retrieval • Event details are used to retrieve actual data from the Bullhorn database to generate a Data Sync object
  • 25. Data Sync Object { corpId : 123 , id : 345 , entityType : ‘Candidate’ , updated : { firstName : ‘Bob’ } }
  • 26. Data Sync API • Data Sync object stored in MongoDB. • When requested, retrieves new objects from the db and returns to caller.
  • 27. What about Data Mirror? • Data Mirror now just asks the Data Sync API for any new events • Receives everything it needs from that one response to then update it’s database. – No follow up required • Won’t hit main REST API! • Independent Rate Limiting
  • 29. Enhanced Performance • Significantly faster – One REST call to retrieve relevant data for event – Updating DB is significantly faster due • Less resource requirements on your server • Frees up REST servers to go even faster
  • 30. • Countless possibilities: – Everything Beyond
  • 33. Why Data Loader? • Basic Mechanics – Based on Rest SDK project • Supports entire Bullhorn data model (and growing) – Supports To-One/To-Many fields • Ex: primarySkills.id, primarySkills.name, candidate.externalID – Supports multiple associations in a single cell • Ex: java;javascript;python
  • 34. Why Data Loader? • Data Integrity – 100% Unit Test Coverage • Twice the test code as production code – Integration Tests • Every command for every field on every entity • Over 1,000 records tested for each code change – Semver versioning using GitHub releases
  • 35. Why Data Loader? • Powerful Features – Supports duplicate checking • Ex: externalID (single) or firstName,lastName,email – Supports Wildcard searching • Ex: java* => java, javascript – Allows up to 20,000 associations per cell • Ex: large number of associated business sectors – Supports single-byte, dual byte and BOM