SlideShare a Scribd company logo
1 of 21
1 ©2016 Acquia Inc. — Confidential and Proprietary
Presented by Message Agency
Updating Salesforce Suite to D8:
Major Changes for a Big Module
2 ©2016 Acquia Inc. — Confidential and Proprietary
Who Are We?
Aaron Bauman
– 8+ years Drupal developer & module
maintainer
– aaron@messageagency.com
– drupal.org/u/aaronbauman
Alex Rhodes
– 7 year Drupal developer
– rhodes@messageagency.com
– drupal.org/u/ironsizide
3 ©2016 Acquia Inc. — Confidential and Proprietary
Why Are We Here?
We’re here to talk about navigating
Drupal 8 APIs for Drupal 7 developers,
through the lens of Salesforce module.
– Entity & Entity Storage API
– Plugin API
– Events Dispatcher
– Queue API
– Building a REST client for Salesforce
API
– Route Subscribers
– Service Providers
4 ©2016 Acquia Inc. — Confidential and Proprietary
Project Overview
– Mappings (Entity API, Plugin API,
Route Subscriber)
– Pull (Queue API)
– Push (Queue API, custom)
– Push/Pull Events (Events
Dispatcher)
– Salesforce REST API Client (Service)
– Encrypt support (Service Provider
alter)
5 ©2016 Acquia Inc. — Confidential and Proprietary
New Features & Bug Fixes
– Intelligent use of API clients
– Multiple mappings per entity type
– Improved error handling and logging
– Merge support
– Encryption support
– Fully extensible and pluggable
6 ©2016 Acquia Inc. — Confidential and Proprietary
Salesforce Push Diagram
http://goo.gl/tmKw6w
7 ©2016 Acquia Inc. — Confidential and Proprietary
Salesforce Pull Diagram
http://goo.gl/2X3BG3
8 ©2016 Acquia Inc. — Confidential and Proprietary
Demo Slide
– Elevator music goes here
9 ©2016 Acquia Inc. — Confidential and Proprietary
Entity & Entity Storage
node_load()
is now
Drupal::service(
'entity_type.manager')
->getStorage('node')
->load()
This is... verbose. Why is it better?
– Extensibility
– Dependability
– Testability
10 ©2016 Acquia Inc. — Confidential and Proprietary
Entity & Entity Storage
Examples
– Drupalsalesforce_mapping
– EntityMappedObject
– EntitySalesforceMapping
– SalesforceMappingStorage
– MappedObjectStorage
11 ©2016 Acquia Inc. — Confidential and Proprietary
Plugin API
hook_my_module_new_api_info
+ module_invoke_all
+ hook_my_module_new_api_data
+hook_my_module_new_api_CALLBACK_FUN
CTION
is now
Drupal::service(
'my_module.plugin_manager')
->getDefinitions()
This is more concise. Why is this better?
– Extensibility
– Dependability
– Testability
12 ©2016 Acquia Inc. — Confidential and Proprietary
Plugin API
Examples
– Drupalsalesforce_mapping
– SalesforceMappingFieldPluginManager
– SalesforceMappingFieldPluginBase
– PluginSalesforceMappingFieldProperties
– PluginSalesforceMappingFieldBroken
13 ©2016 Acquia Inc. — Confidential and Proprietary
Queue API
hook_cron_queue_info
is now
PluginQueueWorker
Why is this better?
– Extensibility
– Dependability
– Testability
14 ©2016 Acquia Inc. — Confidential and Proprietary
Queue API
Examples
– Drupalsalesforce_pull
– QueueHandler
– PluginQueueWorkerPullBase
– Drupalsalesforce_push
– PushQueue
– PluginSalesforcePushQueueProcessorRest
15 ©2016 Acquia Inc. — Confidential and Proprietary
Events API
Examples
– Drupalsalesforce
SalesforceEvents
– Drupalsalesforce_pushPlugin
SalesforcePushQueueProcessor
Rest
module_invoke_all()
is now
Drupal::service(
'event_dispatcher')
->dispatch()
16 ©2016 Acquia Inc. — Confidential and Proprietary
Salesforce REST API Client
Drupal 7
+ Salesforce client encapsulated in a
class
- Class file contains 3 different classes
+ Internal methods are atomized
- Return values are not reliable
Drupal 8
+ PSR-4 enforces namespacing, class
hierarchy, interface
+ Class wrappers for return values
+ Type-hinting whenever possible
+ Salesforce Exception classes to
encapsulate error responses
DrupalsalesforceRestRestClient
17 ©2016 Acquia Inc. — Confidential and Proprietary
Lower barrier to implementing new APIs
– Extend a class, rather than copy-pasting and re-writing
– Plugin API and Annotations reduce overhead and time to ship
– Lots of previously hard/tedious things we now get "for free"
Key Takeaways
18 ©2016 Acquia Inc. — Confidential and Proprietary
OOP, finally
– Reliable arguments and return values make devs happy
– Traits make it easy to reuse components across inheritance, extensibility, and
interfaces
– Consistent expectations for all objects. No more stdClass, yay!
Key Takeaways
19 ©2016 Acquia Inc. — Confidential and Proprietary
Early architecture decisions are important
– Naming conventions are crucial, and tedious to change
– Writing tests early (or full TDD) is faster than writing tests for a large, existing stack
– Dependency injection and encapsulation, every time
– Not sure the best way to do something?
Look for a pattern in core.
Key Takeaways
20 ©2016 Acquia Inc. — Confidential and Proprietary
Navigating and learning D8 can be tedious
– Dozens of nesting levels and wrappers
– Namespacing means class names are no longer unique
– Keep a copy of core.services.yml handy at all times
– Use a smart IDE, or a good documentation tool like Dash
– Be ready to search d.o documentation, changelogs, and issue queue for "the D8
way" to do things
– Examples module implements dozens of different APIs
Key Takeaways
21 ©2016 Acquia Inc. — Confidential and Proprietary
Thank You
https://www.drupal.org/project/salesforce
https://www.messageagency.com

More Related Content

What's hot

Drupal 8 and 9, Backwards Compatibility, and Drupal 8.5 update
Drupal 8 and 9, Backwards Compatibility, and Drupal 8.5 updateDrupal 8 and 9, Backwards Compatibility, and Drupal 8.5 update
Drupal 8 and 9, Backwards Compatibility, and Drupal 8.5 updateAngela Byron
 
Questions To Ask Before a Drupal Project Kickoff
Questions To Ask Before a Drupal Project KickoffQuestions To Ask Before a Drupal Project Kickoff
Questions To Ask Before a Drupal Project KickoffAcquia
 
Pivotal microservices spring_pcf_skillsmatter.pptx
Pivotal microservices spring_pcf_skillsmatter.pptxPivotal microservices spring_pcf_skillsmatter.pptx
Pivotal microservices spring_pcf_skillsmatter.pptxSufyaan Kazi
 
How to Architect and Develop Cloud Native Applications
How to Architect and Develop Cloud Native ApplicationsHow to Architect and Develop Cloud Native Applications
How to Architect and Develop Cloud Native ApplicationsSufyaan Kazi
 
Manchester geek night pcf 101
Manchester geek night   pcf 101Manchester geek night   pcf 101
Manchester geek night pcf 101Sufyaan Kazi
 
PaaS and OpenStack
PaaS and OpenStackPaaS and OpenStack
PaaS and OpenStackSeth Fox
 
St.Louis OpenStack February meetup
St.Louis OpenStack February meetupSt.Louis OpenStack February meetup
St.Louis OpenStack February meetupopenstackstl
 
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...mfrancis
 
Transaction Control – a Functional Approach to Modular Transaction Management...
Transaction Control – a Functional Approach to Modular Transaction Management...Transaction Control – a Functional Approach to Modular Transaction Management...
Transaction Control – a Functional Approach to Modular Transaction Management...mfrancis
 
Real World Example of Orchestrating Docker, Node JS, NFV on OpenStack
Real World Example of Orchestrating Docker, Node JS, NFV on OpenStackReal World Example of Orchestrating Docker, Node JS, NFV on OpenStack
Real World Example of Orchestrating Docker, Node JS, NFV on OpenStackNati Shalom
 
Platform9 deployment models for OpenStack
Platform9 deployment models for OpenStackPlatform9 deployment models for OpenStack
Platform9 deployment models for OpenStackOpenStack_Online
 
Taming startup dynamics - Magnus Jungsbluth & Domagoj Cosic
Taming startup dynamics - Magnus Jungsbluth & Domagoj CosicTaming startup dynamics - Magnus Jungsbluth & Domagoj Cosic
Taming startup dynamics - Magnus Jungsbluth & Domagoj Cosicmfrancis
 
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5Shaun Smith
 
7-Step Recipe For Continuous Integration Using OpenStack - Part 1
7-Step Recipe For Continuous Integration Using OpenStack - Part 17-Step Recipe For Continuous Integration Using OpenStack - Part 1
7-Step Recipe For Continuous Integration Using OpenStack - Part 1Platform9
 
Cloud native Microservices using Spring Boot
Cloud native Microservices using Spring BootCloud native Microservices using Spring Boot
Cloud native Microservices using Spring BootSufyaan Kazi
 
Product Release Webinar- WSO2 Developer Studio 3.5
Product Release Webinar- WSO2 Developer Studio 3.5Product Release Webinar- WSO2 Developer Studio 3.5
Product Release Webinar- WSO2 Developer Studio 3.5WSO2
 
Pivotal Power Lunch - Why Cloud Native?
Pivotal Power Lunch - Why Cloud Native?Pivotal Power Lunch - Why Cloud Native?
Pivotal Power Lunch - Why Cloud Native?Sufyaan Kazi
 
The Cloud Native Journey
The Cloud Native JourneyThe Cloud Native Journey
The Cloud Native JourneyMatt Stine
 
Cloud-native Integration in the Oracle Cloud
Cloud-native Integration in the Oracle CloudCloud-native Integration in the Oracle Cloud
Cloud-native Integration in the Oracle CloudSven Bernhardt
 

What's hot (20)

Drupal 8 and 9, Backwards Compatibility, and Drupal 8.5 update
Drupal 8 and 9, Backwards Compatibility, and Drupal 8.5 updateDrupal 8 and 9, Backwards Compatibility, and Drupal 8.5 update
Drupal 8 and 9, Backwards Compatibility, and Drupal 8.5 update
 
Questions To Ask Before a Drupal Project Kickoff
Questions To Ask Before a Drupal Project KickoffQuestions To Ask Before a Drupal Project Kickoff
Questions To Ask Before a Drupal Project Kickoff
 
Pivotal microservices spring_pcf_skillsmatter.pptx
Pivotal microservices spring_pcf_skillsmatter.pptxPivotal microservices spring_pcf_skillsmatter.pptx
Pivotal microservices spring_pcf_skillsmatter.pptx
 
How to Architect and Develop Cloud Native Applications
How to Architect and Develop Cloud Native ApplicationsHow to Architect and Develop Cloud Native Applications
How to Architect and Develop Cloud Native Applications
 
Manchester geek night pcf 101
Manchester geek night   pcf 101Manchester geek night   pcf 101
Manchester geek night pcf 101
 
PaaS and OpenStack
PaaS and OpenStackPaaS and OpenStack
PaaS and OpenStack
 
St.Louis OpenStack February meetup
St.Louis OpenStack February meetupSt.Louis OpenStack February meetup
St.Louis OpenStack February meetup
 
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...
 
Transaction Control – a Functional Approach to Modular Transaction Management...
Transaction Control – a Functional Approach to Modular Transaction Management...Transaction Control – a Functional Approach to Modular Transaction Management...
Transaction Control – a Functional Approach to Modular Transaction Management...
 
Real World Example of Orchestrating Docker, Node JS, NFV on OpenStack
Real World Example of Orchestrating Docker, Node JS, NFV on OpenStackReal World Example of Orchestrating Docker, Node JS, NFV on OpenStack
Real World Example of Orchestrating Docker, Node JS, NFV on OpenStack
 
Platform9 deployment models for OpenStack
Platform9 deployment models for OpenStackPlatform9 deployment models for OpenStack
Platform9 deployment models for OpenStack
 
Taming startup dynamics - Magnus Jungsbluth & Domagoj Cosic
Taming startup dynamics - Magnus Jungsbluth & Domagoj CosicTaming startup dynamics - Magnus Jungsbluth & Domagoj Cosic
Taming startup dynamics - Magnus Jungsbluth & Domagoj Cosic
 
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
 
Dev ops
Dev opsDev ops
Dev ops
 
7-Step Recipe For Continuous Integration Using OpenStack - Part 1
7-Step Recipe For Continuous Integration Using OpenStack - Part 17-Step Recipe For Continuous Integration Using OpenStack - Part 1
7-Step Recipe For Continuous Integration Using OpenStack - Part 1
 
Cloud native Microservices using Spring Boot
Cloud native Microservices using Spring BootCloud native Microservices using Spring Boot
Cloud native Microservices using Spring Boot
 
Product Release Webinar- WSO2 Developer Studio 3.5
Product Release Webinar- WSO2 Developer Studio 3.5Product Release Webinar- WSO2 Developer Studio 3.5
Product Release Webinar- WSO2 Developer Studio 3.5
 
Pivotal Power Lunch - Why Cloud Native?
Pivotal Power Lunch - Why Cloud Native?Pivotal Power Lunch - Why Cloud Native?
Pivotal Power Lunch - Why Cloud Native?
 
The Cloud Native Journey
The Cloud Native JourneyThe Cloud Native Journey
The Cloud Native Journey
 
Cloud-native Integration in the Oracle Cloud
Cloud-native Integration in the Oracle CloudCloud-native Integration in the Oracle Cloud
Cloud-native Integration in the Oracle Cloud
 

Viewers also liked

From Stone Age-worthy Sites to Cohesive Content: How Trinity University is Us...
From Stone Age-worthy Sites to Cohesive Content: How Trinity University is Us...From Stone Age-worthy Sites to Cohesive Content: How Trinity University is Us...
From Stone Age-worthy Sites to Cohesive Content: How Trinity University is Us...Acquia
 
Drupal 7 vs. Drupal 8: A Contrast of Multilingual Support
Drupal 7 vs. Drupal 8: A Contrast of Multilingual SupportDrupal 7 vs. Drupal 8: A Contrast of Multilingual Support
Drupal 7 vs. Drupal 8: A Contrast of Multilingual SupportAcquia
 
Why the Government of Bermuda Chose to Build Their New Citizen-centric Digita...
Why the Government of Bermuda Chose to Build Their New Citizen-centric Digita...Why the Government of Bermuda Chose to Build Their New Citizen-centric Digita...
Why the Government of Bermuda Chose to Build Their New Citizen-centric Digita...Acquia
 
Speedrun: Build a Website with Panels, Media, and More in 45 Minutes
Speedrun: Build a Website with Panels, Media, and More in 45 MinutesSpeedrun: Build a Website with Panels, Media, and More in 45 Minutes
Speedrun: Build a Website with Panels, Media, and More in 45 MinutesAcquia
 
Successes and Challenges When Managing Large Scale Drupal Projects
Successes and Challenges When Managing Large Scale Drupal ProjectsSuccesses and Challenges When Managing Large Scale Drupal Projects
Successes and Challenges When Managing Large Scale Drupal ProjectsAcquia
 
Introducing Workspace Preview System: Solve Your Content Preview Problems
Introducing Workspace Preview System: Solve Your Content Preview ProblemsIntroducing Workspace Preview System: Solve Your Content Preview Problems
Introducing Workspace Preview System: Solve Your Content Preview ProblemsAcquia
 
How Wilson Sporting Goods Is Changing the Game with Experiential Commerce
 How Wilson Sporting Goods Is Changing the Game with Experiential Commerce How Wilson Sporting Goods Is Changing the Game with Experiential Commerce
How Wilson Sporting Goods Is Changing the Game with Experiential CommerceAcquia
 
Tomorrow’s Personalization Today: Increase User Engagement with Content in Co...
Tomorrow’s Personalization Today: Increase User Engagement with Content in Co...Tomorrow’s Personalization Today: Increase User Engagement with Content in Co...
Tomorrow’s Personalization Today: Increase User Engagement with Content in Co...Acquia
 
Open Y: One Digital Platform for all YMCAs
Open Y: One Digital Platform for all YMCAsOpen Y: One Digital Platform for all YMCAs
Open Y: One Digital Platform for all YMCAsAcquia
 
A Future-Focused Digital Platform with Drupal 8
A Future-Focused Digital Platform with Drupal 8A Future-Focused Digital Platform with Drupal 8
A Future-Focused Digital Platform with Drupal 8Acquia
 
Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...
Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...
Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...Acquia
 
How to Optimize Your Drupal Site with Structured Content
How to Optimize Your Drupal Site with Structured ContentHow to Optimize Your Drupal Site with Structured Content
How to Optimize Your Drupal Site with Structured ContentAcquia
 
Multilingual Drupal presentation from "Do it With Drupal"
Multilingual Drupal presentation from "Do it With Drupal"Multilingual Drupal presentation from "Do it With Drupal"
Multilingual Drupal presentation from "Do it With Drupal"Gábor Hojtsy
 
Content Modelling for Personalisation
Content Modelling for PersonalisationContent Modelling for Personalisation
Content Modelling for Personalisationcleveg
 
Going Beyond The Click: The Importance of Web Personalization
Going Beyond The Click: The Importance of Web PersonalizationGoing Beyond The Click: The Importance of Web Personalization
Going Beyond The Click: The Importance of Web PersonalizationAcquia
 
Use Content to Enhance Your Commerce Experience
Use Content to Enhance Your Commerce ExperienceUse Content to Enhance Your Commerce Experience
Use Content to Enhance Your Commerce ExperienceAcquia
 
Introducing Acquia Content Hub: Take Control of Your Content Chaos
Introducing Acquia Content Hub: Take Control of Your Content ChaosIntroducing Acquia Content Hub: Take Control of Your Content Chaos
Introducing Acquia Content Hub: Take Control of Your Content ChaosAcquia
 
Headless Drupal, Singapore Drupal Meetup
Headless Drupal, Singapore Drupal MeetupHeadless Drupal, Singapore Drupal Meetup
Headless Drupal, Singapore Drupal MeetupPratomo Ardianto
 
Responsive & Ready: Why Drupal 8 is Ideal for Building Mobile-first Experienc...
Responsive & Ready: Why Drupal 8 is Ideal for Building Mobile-first Experienc...Responsive & Ready: Why Drupal 8 is Ideal for Building Mobile-first Experienc...
Responsive & Ready: Why Drupal 8 is Ideal for Building Mobile-first Experienc...Acquia
 

Viewers also liked (20)

From Stone Age-worthy Sites to Cohesive Content: How Trinity University is Us...
From Stone Age-worthy Sites to Cohesive Content: How Trinity University is Us...From Stone Age-worthy Sites to Cohesive Content: How Trinity University is Us...
From Stone Age-worthy Sites to Cohesive Content: How Trinity University is Us...
 
Drupal 7 vs. Drupal 8: A Contrast of Multilingual Support
Drupal 7 vs. Drupal 8: A Contrast of Multilingual SupportDrupal 7 vs. Drupal 8: A Contrast of Multilingual Support
Drupal 7 vs. Drupal 8: A Contrast of Multilingual Support
 
Why the Government of Bermuda Chose to Build Their New Citizen-centric Digita...
Why the Government of Bermuda Chose to Build Their New Citizen-centric Digita...Why the Government of Bermuda Chose to Build Their New Citizen-centric Digita...
Why the Government of Bermuda Chose to Build Their New Citizen-centric Digita...
 
Speedrun: Build a Website with Panels, Media, and More in 45 Minutes
Speedrun: Build a Website with Panels, Media, and More in 45 MinutesSpeedrun: Build a Website with Panels, Media, and More in 45 Minutes
Speedrun: Build a Website with Panels, Media, and More in 45 Minutes
 
Successes and Challenges When Managing Large Scale Drupal Projects
Successes and Challenges When Managing Large Scale Drupal ProjectsSuccesses and Challenges When Managing Large Scale Drupal Projects
Successes and Challenges When Managing Large Scale Drupal Projects
 
Introducing Workspace Preview System: Solve Your Content Preview Problems
Introducing Workspace Preview System: Solve Your Content Preview ProblemsIntroducing Workspace Preview System: Solve Your Content Preview Problems
Introducing Workspace Preview System: Solve Your Content Preview Problems
 
How Wilson Sporting Goods Is Changing the Game with Experiential Commerce
 How Wilson Sporting Goods Is Changing the Game with Experiential Commerce How Wilson Sporting Goods Is Changing the Game with Experiential Commerce
How Wilson Sporting Goods Is Changing the Game with Experiential Commerce
 
Tomorrow’s Personalization Today: Increase User Engagement with Content in Co...
Tomorrow’s Personalization Today: Increase User Engagement with Content in Co...Tomorrow’s Personalization Today: Increase User Engagement with Content in Co...
Tomorrow’s Personalization Today: Increase User Engagement with Content in Co...
 
Open Y: One Digital Platform for all YMCAs
Open Y: One Digital Platform for all YMCAsOpen Y: One Digital Platform for all YMCAs
Open Y: One Digital Platform for all YMCAs
 
A Future-Focused Digital Platform with Drupal 8
A Future-Focused Digital Platform with Drupal 8A Future-Focused Digital Platform with Drupal 8
A Future-Focused Digital Platform with Drupal 8
 
Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...
Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...
Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...
 
How to Optimize Your Drupal Site with Structured Content
How to Optimize Your Drupal Site with Structured ContentHow to Optimize Your Drupal Site with Structured Content
How to Optimize Your Drupal Site with Structured Content
 
Multilingual Drupal presentation from "Do it With Drupal"
Multilingual Drupal presentation from "Do it With Drupal"Multilingual Drupal presentation from "Do it With Drupal"
Multilingual Drupal presentation from "Do it With Drupal"
 
Content Modelling for Personalisation
Content Modelling for PersonalisationContent Modelling for Personalisation
Content Modelling for Personalisation
 
Going Beyond The Click: The Importance of Web Personalization
Going Beyond The Click: The Importance of Web PersonalizationGoing Beyond The Click: The Importance of Web Personalization
Going Beyond The Click: The Importance of Web Personalization
 
Use Content to Enhance Your Commerce Experience
Use Content to Enhance Your Commerce ExperienceUse Content to Enhance Your Commerce Experience
Use Content to Enhance Your Commerce Experience
 
Mb Portfolio 20091201
Mb Portfolio 20091201Mb Portfolio 20091201
Mb Portfolio 20091201
 
Introducing Acquia Content Hub: Take Control of Your Content Chaos
Introducing Acquia Content Hub: Take Control of Your Content ChaosIntroducing Acquia Content Hub: Take Control of Your Content Chaos
Introducing Acquia Content Hub: Take Control of Your Content Chaos
 
Headless Drupal, Singapore Drupal Meetup
Headless Drupal, Singapore Drupal MeetupHeadless Drupal, Singapore Drupal Meetup
Headless Drupal, Singapore Drupal Meetup
 
Responsive & Ready: Why Drupal 8 is Ideal for Building Mobile-first Experienc...
Responsive & Ready: Why Drupal 8 is Ideal for Building Mobile-first Experienc...Responsive & Ready: Why Drupal 8 is Ideal for Building Mobile-first Experienc...
Responsive & Ready: Why Drupal 8 is Ideal for Building Mobile-first Experienc...
 

Similar to Updating the Salesforce Suite to Drupal 8: Major Changes for a Big Module

Across the spectrum different approaches to progressively decoupled drupal (...
Across the spectrum  different approaches to progressively decoupled drupal (...Across the spectrum  different approaches to progressively decoupled drupal (...
Across the spectrum different approaches to progressively decoupled drupal (...Acquia
 
Acquia - 大規模スケールでのマルチサイトの管理と運用 [動画あり]
Acquia - 大規模スケールでのマルチサイトの管理と運用 [動画あり]Acquia - 大規模スケールでのマルチサイトの管理と運用 [動画あり]
Acquia - 大規模スケールでのマルチサイトの管理と運用 [動画あり]CI&T Japan
 
Drupal 9 and Backwards Compatibility: Why now is the time to upgrade to Drupal 8
Drupal 9 and Backwards Compatibility: Why now is the time to upgrade to Drupal 8Drupal 9 and Backwards Compatibility: Why now is the time to upgrade to Drupal 8
Drupal 9 and Backwards Compatibility: Why now is the time to upgrade to Drupal 8Angela Byron
 
Quarterly Products Update Q2 For Customer & Partners
Quarterly Products Update Q2 For Customer & PartnersQuarterly Products Update Q2 For Customer & Partners
Quarterly Products Update Q2 For Customer & PartnersAcquia
 
London Oracle Developer Meetup April 18
London Oracle Developer Meetup April 18London Oracle Developer Meetup April 18
London Oracle Developer Meetup April 18Phil Wilkins
 
Oracle SOA Cloud - Skanska Customer Journey
Oracle SOA Cloud - Skanska Customer JourneyOracle SOA Cloud - Skanska Customer Journey
Oracle SOA Cloud - Skanska Customer JourneySimon Haslam
 
Documentum Spring Data
Documentum Spring DataDocumentum Spring Data
Documentum Spring DataMichael Mohen
 
Acquia Platform Update: New Features & Capabilities
Acquia Platform Update: New Features & CapabilitiesAcquia Platform Update: New Features & Capabilities
Acquia Platform Update: New Features & CapabilitiesAcquia
 
Quarterly Customer Update: Acquia Platform Enhancements and New Capabilities
Quarterly Customer Update: Acquia Platform Enhancements and New CapabilitiesQuarterly Customer Update: Acquia Platform Enhancements and New Capabilities
Quarterly Customer Update: Acquia Platform Enhancements and New CapabilitiesAcquia
 
Building a CloudStack UI for the Enterprise
Building a CloudStack UI for the EnterpriseBuilding a CloudStack UI for the Enterprise
Building a CloudStack UI for the EnterpriseDavid Grizzanti
 
Hack proof your drupal site- DrupalCamp Hyderabad
Hack proof your drupal site- DrupalCamp HyderabadHack proof your drupal site- DrupalCamp Hyderabad
Hack proof your drupal site- DrupalCamp HyderabadNaveen Valecha
 
Overview and Walkthrough of the Application Programming Model with SAP Cloud ...
Overview and Walkthrough of the Application Programming Model with SAP Cloud ...Overview and Walkthrough of the Application Programming Model with SAP Cloud ...
Overview and Walkthrough of the Application Programming Model with SAP Cloud ...SAP Cloud Platform
 
Tips & Tricks for Oracle PaaS Admins
Tips & Tricks for Oracle PaaS AdminsTips & Tricks for Oracle PaaS Admins
Tips & Tricks for Oracle PaaS AdminsSimon Haslam
 
Re-Platforming: How to Plan Your Next Multi-Site Digital Platform
Re-Platforming: How to Plan Your Next Multi-Site Digital PlatformRe-Platforming: How to Plan Your Next Multi-Site Digital Platform
Re-Platforming: How to Plan Your Next Multi-Site Digital PlatformJake Borr
 
Demystifying Decoupled Drupal for Developers & Content Authors
Demystifying Decoupled Drupal for Developers & Content AuthorsDemystifying Decoupled Drupal for Developers & Content Authors
Demystifying Decoupled Drupal for Developers & Content AuthorsRachel Wandishin
 
Oracle Ravello Presentation 7Dec16 v1
Oracle Ravello Presentation 7Dec16 v1Oracle Ravello Presentation 7Dec16 v1
Oracle Ravello Presentation 7Dec16 v1Kurt Liu
 
Public Cloud services delivered to your Datacenter
Public Cloud services delivered to your DatacenterPublic Cloud services delivered to your Datacenter
Public Cloud services delivered to your DatacenterRiccardo Romani
 
Craig Sheridan International Industry-Academia Workshop on Cloud Reliability ...
Craig Sheridan International Industry-Academia Workshop on Cloud Reliability ...Craig Sheridan International Industry-Academia Workshop on Cloud Reliability ...
Craig Sheridan International Industry-Academia Workshop on Cloud Reliability ...Craig Sheridan
 

Similar to Updating the Salesforce Suite to Drupal 8: Major Changes for a Big Module (20)

Across the spectrum different approaches to progressively decoupled drupal (...
Across the spectrum  different approaches to progressively decoupled drupal (...Across the spectrum  different approaches to progressively decoupled drupal (...
Across the spectrum different approaches to progressively decoupled drupal (...
 
Acquia - 大規模スケールでのマルチサイトの管理と運用 [動画あり]
Acquia - 大規模スケールでのマルチサイトの管理と運用 [動画あり]Acquia - 大規模スケールでのマルチサイトの管理と運用 [動画あり]
Acquia - 大規模スケールでのマルチサイトの管理と運用 [動画あり]
 
Drupal 9 and Backwards Compatibility: Why now is the time to upgrade to Drupal 8
Drupal 9 and Backwards Compatibility: Why now is the time to upgrade to Drupal 8Drupal 9 and Backwards Compatibility: Why now is the time to upgrade to Drupal 8
Drupal 9 and Backwards Compatibility: Why now is the time to upgrade to Drupal 8
 
Quarterly Products Update Q2 For Customer & Partners
Quarterly Products Update Q2 For Customer & PartnersQuarterly Products Update Q2 For Customer & Partners
Quarterly Products Update Q2 For Customer & Partners
 
London Oracle Developer Meetup April 18
London Oracle Developer Meetup April 18London Oracle Developer Meetup April 18
London Oracle Developer Meetup April 18
 
Oracle SOA Cloud - Skanska Customer Journey
Oracle SOA Cloud - Skanska Customer JourneyOracle SOA Cloud - Skanska Customer Journey
Oracle SOA Cloud - Skanska Customer Journey
 
Documentum Spring Data
Documentum Spring DataDocumentum Spring Data
Documentum Spring Data
 
Acquia Platform Update: New Features & Capabilities
Acquia Platform Update: New Features & CapabilitiesAcquia Platform Update: New Features & Capabilities
Acquia Platform Update: New Features & Capabilities
 
Quarterly Customer Update: Acquia Platform Enhancements and New Capabilities
Quarterly Customer Update: Acquia Platform Enhancements and New CapabilitiesQuarterly Customer Update: Acquia Platform Enhancements and New Capabilities
Quarterly Customer Update: Acquia Platform Enhancements and New Capabilities
 
Building a CloudStack UI for the Enterprise
Building a CloudStack UI for the EnterpriseBuilding a CloudStack UI for the Enterprise
Building a CloudStack UI for the Enterprise
 
Hack proof your drupal site- DrupalCamp Hyderabad
Hack proof your drupal site- DrupalCamp HyderabadHack proof your drupal site- DrupalCamp Hyderabad
Hack proof your drupal site- DrupalCamp Hyderabad
 
The Decoupled CMS in Financial Services
The Decoupled CMS in Financial ServicesThe Decoupled CMS in Financial Services
The Decoupled CMS in Financial Services
 
Overview and Walkthrough of the Application Programming Model with SAP Cloud ...
Overview and Walkthrough of the Application Programming Model with SAP Cloud ...Overview and Walkthrough of the Application Programming Model with SAP Cloud ...
Overview and Walkthrough of the Application Programming Model with SAP Cloud ...
 
Tips & Tricks for Oracle PaaS Admins
Tips & Tricks for Oracle PaaS AdminsTips & Tricks for Oracle PaaS Admins
Tips & Tricks for Oracle PaaS Admins
 
Re-Platforming: How to Plan Your Next Multi-Site Digital Platform
Re-Platforming: How to Plan Your Next Multi-Site Digital PlatformRe-Platforming: How to Plan Your Next Multi-Site Digital Platform
Re-Platforming: How to Plan Your Next Multi-Site Digital Platform
 
Demystifying Decoupled Drupal for Developers & Content Authors
Demystifying Decoupled Drupal for Developers & Content AuthorsDemystifying Decoupled Drupal for Developers & Content Authors
Demystifying Decoupled Drupal for Developers & Content Authors
 
Oracle Ravello Presentation 7Dec16 v1
Oracle Ravello Presentation 7Dec16 v1Oracle Ravello Presentation 7Dec16 v1
Oracle Ravello Presentation 7Dec16 v1
 
Public Cloud services delivered to your Datacenter
Public Cloud services delivered to your DatacenterPublic Cloud services delivered to your Datacenter
Public Cloud services delivered to your Datacenter
 
Apex day 1.0 fastest route to cloud sept 2015_julian lane
Apex day 1.0 fastest route to cloud sept 2015_julian laneApex day 1.0 fastest route to cloud sept 2015_julian lane
Apex day 1.0 fastest route to cloud sept 2015_julian lane
 
Craig Sheridan International Industry-Academia Workshop on Cloud Reliability ...
Craig Sheridan International Industry-Academia Workshop on Cloud Reliability ...Craig Sheridan International Industry-Academia Workshop on Cloud Reliability ...
Craig Sheridan International Industry-Academia Workshop on Cloud Reliability ...
 

More from Acquia

Acquia_Adcetera Webinar_Marketing Automation.pdf
Acquia_Adcetera Webinar_Marketing Automation.pdfAcquia_Adcetera Webinar_Marketing Automation.pdf
Acquia_Adcetera Webinar_Marketing Automation.pdfAcquia
 
Acquia Webinar Deck - 9_13 .pdf
Acquia Webinar Deck - 9_13 .pdfAcquia Webinar Deck - 9_13 .pdf
Acquia Webinar Deck - 9_13 .pdfAcquia
 
Taking Your Multi-Site Management at Scale to the Next Level
Taking Your Multi-Site Management at Scale to the Next LevelTaking Your Multi-Site Management at Scale to the Next Level
Taking Your Multi-Site Management at Scale to the Next LevelAcquia
 
CDP for Retail Webinar with Appnovation - Q2 2022.pdf
CDP for Retail Webinar with Appnovation - Q2 2022.pdfCDP for Retail Webinar with Appnovation - Q2 2022.pdf
CDP for Retail Webinar with Appnovation - Q2 2022.pdfAcquia
 
May Partner Bootcamp 2022
May Partner Bootcamp 2022May Partner Bootcamp 2022
May Partner Bootcamp 2022Acquia
 
April Partner Bootcamp 2022
April Partner Bootcamp 2022April Partner Bootcamp 2022
April Partner Bootcamp 2022Acquia
 
How to Unify Brand Experience: A Hootsuite Story
How to Unify Brand Experience: A Hootsuite Story How to Unify Brand Experience: A Hootsuite Story
How to Unify Brand Experience: A Hootsuite Story Acquia
 
Using Personas to Guide DAM Results: How Life Time Pumped Up Their UX and CX
Using Personas to Guide DAM Results: How Life Time Pumped Up Their UX and CXUsing Personas to Guide DAM Results: How Life Time Pumped Up Their UX and CX
Using Personas to Guide DAM Results: How Life Time Pumped Up Their UX and CXAcquia
 
Improve Code Quality and Time to Market: 100% Cloud-Based Development Workflow
Improve Code Quality and Time to Market: 100% Cloud-Based Development WorkflowImprove Code Quality and Time to Market: 100% Cloud-Based Development Workflow
Improve Code Quality and Time to Market: 100% Cloud-Based Development WorkflowAcquia
 
September Partner Bootcamp
September Partner BootcampSeptember Partner Bootcamp
September Partner BootcampAcquia
 
August partner bootcamp
August partner bootcampAugust partner bootcamp
August partner bootcampAcquia
 
July 2021 Partner Bootcamp
July  2021 Partner BootcampJuly  2021 Partner Bootcamp
July 2021 Partner BootcampAcquia
 
May Partner Bootcamp
May Partner BootcampMay Partner Bootcamp
May Partner BootcampAcquia
 
DRUPAL 7 END OF LIFE IS NEAR - MIGRATE TO DRUPAL 9 FAST AND EASY
DRUPAL 7 END OF LIFE IS NEAR - MIGRATE TO DRUPAL 9 FAST AND EASYDRUPAL 7 END OF LIFE IS NEAR - MIGRATE TO DRUPAL 9 FAST AND EASY
DRUPAL 7 END OF LIFE IS NEAR - MIGRATE TO DRUPAL 9 FAST AND EASYAcquia
 
Work While You Sleep: The CMO’s Guide to a 24/7/365 Lead Machine
Work While You Sleep: The CMO’s Guide to a 24/7/365 Lead MachineWork While You Sleep: The CMO’s Guide to a 24/7/365 Lead Machine
Work While You Sleep: The CMO’s Guide to a 24/7/365 Lead MachineAcquia
 
Acquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B Leads
Acquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B LeadsAcquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B Leads
Acquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B LeadsAcquia
 
April partner bootcamp deck cookieless future
April partner bootcamp deck  cookieless futureApril partner bootcamp deck  cookieless future
April partner bootcamp deck cookieless futureAcquia
 
How to enhance cx through personalised, automated solutions
How to enhance cx through personalised, automated solutionsHow to enhance cx through personalised, automated solutions
How to enhance cx through personalised, automated solutionsAcquia
 
DRUPAL MIGRATIONS AND DRUPAL 9 INNOVATION: HOW PAC-12 DELIVERED DIGITALLY FOR...
DRUPAL MIGRATIONS AND DRUPAL 9 INNOVATION: HOW PAC-12 DELIVERED DIGITALLY FOR...DRUPAL MIGRATIONS AND DRUPAL 9 INNOVATION: HOW PAC-12 DELIVERED DIGITALLY FOR...
DRUPAL MIGRATIONS AND DRUPAL 9 INNOVATION: HOW PAC-12 DELIVERED DIGITALLY FOR...Acquia
 
Customer Experience (CX): 3 Key Factors Shaping CX Redesign in 2021
Customer Experience (CX): 3 Key Factors Shaping CX Redesign in 2021Customer Experience (CX): 3 Key Factors Shaping CX Redesign in 2021
Customer Experience (CX): 3 Key Factors Shaping CX Redesign in 2021Acquia
 

More from Acquia (20)

Acquia_Adcetera Webinar_Marketing Automation.pdf
Acquia_Adcetera Webinar_Marketing Automation.pdfAcquia_Adcetera Webinar_Marketing Automation.pdf
Acquia_Adcetera Webinar_Marketing Automation.pdf
 
Acquia Webinar Deck - 9_13 .pdf
Acquia Webinar Deck - 9_13 .pdfAcquia Webinar Deck - 9_13 .pdf
Acquia Webinar Deck - 9_13 .pdf
 
Taking Your Multi-Site Management at Scale to the Next Level
Taking Your Multi-Site Management at Scale to the Next LevelTaking Your Multi-Site Management at Scale to the Next Level
Taking Your Multi-Site Management at Scale to the Next Level
 
CDP for Retail Webinar with Appnovation - Q2 2022.pdf
CDP for Retail Webinar with Appnovation - Q2 2022.pdfCDP for Retail Webinar with Appnovation - Q2 2022.pdf
CDP for Retail Webinar with Appnovation - Q2 2022.pdf
 
May Partner Bootcamp 2022
May Partner Bootcamp 2022May Partner Bootcamp 2022
May Partner Bootcamp 2022
 
April Partner Bootcamp 2022
April Partner Bootcamp 2022April Partner Bootcamp 2022
April Partner Bootcamp 2022
 
How to Unify Brand Experience: A Hootsuite Story
How to Unify Brand Experience: A Hootsuite Story How to Unify Brand Experience: A Hootsuite Story
How to Unify Brand Experience: A Hootsuite Story
 
Using Personas to Guide DAM Results: How Life Time Pumped Up Their UX and CX
Using Personas to Guide DAM Results: How Life Time Pumped Up Their UX and CXUsing Personas to Guide DAM Results: How Life Time Pumped Up Their UX and CX
Using Personas to Guide DAM Results: How Life Time Pumped Up Their UX and CX
 
Improve Code Quality and Time to Market: 100% Cloud-Based Development Workflow
Improve Code Quality and Time to Market: 100% Cloud-Based Development WorkflowImprove Code Quality and Time to Market: 100% Cloud-Based Development Workflow
Improve Code Quality and Time to Market: 100% Cloud-Based Development Workflow
 
September Partner Bootcamp
September Partner BootcampSeptember Partner Bootcamp
September Partner Bootcamp
 
August partner bootcamp
August partner bootcampAugust partner bootcamp
August partner bootcamp
 
July 2021 Partner Bootcamp
July  2021 Partner BootcampJuly  2021 Partner Bootcamp
July 2021 Partner Bootcamp
 
May Partner Bootcamp
May Partner BootcampMay Partner Bootcamp
May Partner Bootcamp
 
DRUPAL 7 END OF LIFE IS NEAR - MIGRATE TO DRUPAL 9 FAST AND EASY
DRUPAL 7 END OF LIFE IS NEAR - MIGRATE TO DRUPAL 9 FAST AND EASYDRUPAL 7 END OF LIFE IS NEAR - MIGRATE TO DRUPAL 9 FAST AND EASY
DRUPAL 7 END OF LIFE IS NEAR - MIGRATE TO DRUPAL 9 FAST AND EASY
 
Work While You Sleep: The CMO’s Guide to a 24/7/365 Lead Machine
Work While You Sleep: The CMO’s Guide to a 24/7/365 Lead MachineWork While You Sleep: The CMO’s Guide to a 24/7/365 Lead Machine
Work While You Sleep: The CMO’s Guide to a 24/7/365 Lead Machine
 
Acquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B Leads
Acquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B LeadsAcquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B Leads
Acquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B Leads
 
April partner bootcamp deck cookieless future
April partner bootcamp deck  cookieless futureApril partner bootcamp deck  cookieless future
April partner bootcamp deck cookieless future
 
How to enhance cx through personalised, automated solutions
How to enhance cx through personalised, automated solutionsHow to enhance cx through personalised, automated solutions
How to enhance cx through personalised, automated solutions
 
DRUPAL MIGRATIONS AND DRUPAL 9 INNOVATION: HOW PAC-12 DELIVERED DIGITALLY FOR...
DRUPAL MIGRATIONS AND DRUPAL 9 INNOVATION: HOW PAC-12 DELIVERED DIGITALLY FOR...DRUPAL MIGRATIONS AND DRUPAL 9 INNOVATION: HOW PAC-12 DELIVERED DIGITALLY FOR...
DRUPAL MIGRATIONS AND DRUPAL 9 INNOVATION: HOW PAC-12 DELIVERED DIGITALLY FOR...
 
Customer Experience (CX): 3 Key Factors Shaping CX Redesign in 2021
Customer Experience (CX): 3 Key Factors Shaping CX Redesign in 2021Customer Experience (CX): 3 Key Factors Shaping CX Redesign in 2021
Customer Experience (CX): 3 Key Factors Shaping CX Redesign in 2021
 

Recently uploaded

Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 

Recently uploaded (20)

Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 

Updating the Salesforce Suite to Drupal 8: Major Changes for a Big Module

  • 1. 1 ©2016 Acquia Inc. — Confidential and Proprietary Presented by Message Agency Updating Salesforce Suite to D8: Major Changes for a Big Module
  • 2. 2 ©2016 Acquia Inc. — Confidential and Proprietary Who Are We? Aaron Bauman – 8+ years Drupal developer & module maintainer – aaron@messageagency.com – drupal.org/u/aaronbauman Alex Rhodes – 7 year Drupal developer – rhodes@messageagency.com – drupal.org/u/ironsizide
  • 3. 3 ©2016 Acquia Inc. — Confidential and Proprietary Why Are We Here? We’re here to talk about navigating Drupal 8 APIs for Drupal 7 developers, through the lens of Salesforce module. – Entity & Entity Storage API – Plugin API – Events Dispatcher – Queue API – Building a REST client for Salesforce API – Route Subscribers – Service Providers
  • 4. 4 ©2016 Acquia Inc. — Confidential and Proprietary Project Overview – Mappings (Entity API, Plugin API, Route Subscriber) – Pull (Queue API) – Push (Queue API, custom) – Push/Pull Events (Events Dispatcher) – Salesforce REST API Client (Service) – Encrypt support (Service Provider alter)
  • 5. 5 ©2016 Acquia Inc. — Confidential and Proprietary New Features & Bug Fixes – Intelligent use of API clients – Multiple mappings per entity type – Improved error handling and logging – Merge support – Encryption support – Fully extensible and pluggable
  • 6. 6 ©2016 Acquia Inc. — Confidential and Proprietary Salesforce Push Diagram http://goo.gl/tmKw6w
  • 7. 7 ©2016 Acquia Inc. — Confidential and Proprietary Salesforce Pull Diagram http://goo.gl/2X3BG3
  • 8. 8 ©2016 Acquia Inc. — Confidential and Proprietary Demo Slide – Elevator music goes here
  • 9. 9 ©2016 Acquia Inc. — Confidential and Proprietary Entity & Entity Storage node_load() is now Drupal::service( 'entity_type.manager') ->getStorage('node') ->load() This is... verbose. Why is it better? – Extensibility – Dependability – Testability
  • 10. 10 ©2016 Acquia Inc. — Confidential and Proprietary Entity & Entity Storage Examples – Drupalsalesforce_mapping – EntityMappedObject – EntitySalesforceMapping – SalesforceMappingStorage – MappedObjectStorage
  • 11. 11 ©2016 Acquia Inc. — Confidential and Proprietary Plugin API hook_my_module_new_api_info + module_invoke_all + hook_my_module_new_api_data +hook_my_module_new_api_CALLBACK_FUN CTION is now Drupal::service( 'my_module.plugin_manager') ->getDefinitions() This is more concise. Why is this better? – Extensibility – Dependability – Testability
  • 12. 12 ©2016 Acquia Inc. — Confidential and Proprietary Plugin API Examples – Drupalsalesforce_mapping – SalesforceMappingFieldPluginManager – SalesforceMappingFieldPluginBase – PluginSalesforceMappingFieldProperties – PluginSalesforceMappingFieldBroken
  • 13. 13 ©2016 Acquia Inc. — Confidential and Proprietary Queue API hook_cron_queue_info is now PluginQueueWorker Why is this better? – Extensibility – Dependability – Testability
  • 14. 14 ©2016 Acquia Inc. — Confidential and Proprietary Queue API Examples – Drupalsalesforce_pull – QueueHandler – PluginQueueWorkerPullBase – Drupalsalesforce_push – PushQueue – PluginSalesforcePushQueueProcessorRest
  • 15. 15 ©2016 Acquia Inc. — Confidential and Proprietary Events API Examples – Drupalsalesforce SalesforceEvents – Drupalsalesforce_pushPlugin SalesforcePushQueueProcessor Rest module_invoke_all() is now Drupal::service( 'event_dispatcher') ->dispatch()
  • 16. 16 ©2016 Acquia Inc. — Confidential and Proprietary Salesforce REST API Client Drupal 7 + Salesforce client encapsulated in a class - Class file contains 3 different classes + Internal methods are atomized - Return values are not reliable Drupal 8 + PSR-4 enforces namespacing, class hierarchy, interface + Class wrappers for return values + Type-hinting whenever possible + Salesforce Exception classes to encapsulate error responses DrupalsalesforceRestRestClient
  • 17. 17 ©2016 Acquia Inc. — Confidential and Proprietary Lower barrier to implementing new APIs – Extend a class, rather than copy-pasting and re-writing – Plugin API and Annotations reduce overhead and time to ship – Lots of previously hard/tedious things we now get "for free" Key Takeaways
  • 18. 18 ©2016 Acquia Inc. — Confidential and Proprietary OOP, finally – Reliable arguments and return values make devs happy – Traits make it easy to reuse components across inheritance, extensibility, and interfaces – Consistent expectations for all objects. No more stdClass, yay! Key Takeaways
  • 19. 19 ©2016 Acquia Inc. — Confidential and Proprietary Early architecture decisions are important – Naming conventions are crucial, and tedious to change – Writing tests early (or full TDD) is faster than writing tests for a large, existing stack – Dependency injection and encapsulation, every time – Not sure the best way to do something? Look for a pattern in core. Key Takeaways
  • 20. 20 ©2016 Acquia Inc. — Confidential and Proprietary Navigating and learning D8 can be tedious – Dozens of nesting levels and wrappers – Namespacing means class names are no longer unique – Keep a copy of core.services.yml handy at all times – Use a smart IDE, or a good documentation tool like Dash – Be ready to search d.o documentation, changelogs, and issue queue for "the D8 way" to do things – Examples module implements dozens of different APIs Key Takeaways
  • 21. 21 ©2016 Acquia Inc. — Confidential and Proprietary Thank You https://www.drupal.org/project/salesforce https://www.messageagency.com

Editor's Notes

  1. In addition to porting existing 7.x-3.x functionality, 8.x-3.x fixes long-standing bugs and fills in gaps from the 7.x-3.x fork, as well as introduces brand new features
  2. Quick overview of the 2 key processes of Salesforce module: push. Diagram of real-time push. (push also happens asynchronously)
  3. pull is asynchronous (during cron) only. Uses core DatabaseQueue API
  4. Placeholder slide to demonstrate setting up a Mapping, filling out a form, and pushing data to Salesforce
  5. Salesforce Suite defines 2 entity types: Salesforce Mapping + Mapped Object Each relies on a storage handler to provide convenience methods, e.g. to look up by foreign keys.
  6. Plugin API replaces many hacky elements of hook system, eliminates relying on naming conventions for core functionality. With Plugin API we finally have full extensibility and pluggability.
  7. What do we mean by that? Pluggability: contrib space can replace existing plugin implementations Extensibility: contrib space can add new plugins Class inheritance! Interfaces! PSR-4!
  8. Pull plugin uses core DatabaseQueue and a QueueWorker plugin to pull data from SF to Drupal Push plugin defines PushQueue to extend DatabaseQueue, and a SalesforcePushQueueProcessor Plugin to bulk-process pushing data from Drupal to SF. Core Queue API is designed to process items one-at-a-time; relies on serialized data; with Salesforce API, we can (and should) do better: optimization of query usage / network callouts e.g. grouping similar actions; prioritization of push actions, e.g. "Account" before "Contact"
  9. OK, not exactly but pretty close. All hooks have been replaced with events for D8.