SlideShare a Scribd company logo
Having serious fun with LWC Datatable
and Large Data Volume
by Christian Szandor Knapp
& Christian Menzinger
#CD22
About us
Christian Menzinger
Salesforce Architect, Copado
@chris_menzinger
https://www.linkedin.com/in/christianmenzinger
Christian Szandor Knapp
Head of Development, appero
@ch_sz_knapp
https://www.linkedin.com/in/szandor
#CD22
- Chapter I - In a Land far, far away
- Chapter II - Trails for Rangers, Crossroads for Heroes
- Chapter III - The mole’s tale - Summer is coming
- Chapter IV - The dwarf’s tale - We dig, dig, dig, dig, dig, dig, dig
- Running out of time
- Q&A
Your Fairytale Today
#CD22
Chapter
~ I ~
#CD22
In a Land far, far away
#CD22
… there was a charming product owner princess
Once upon a time, in a land far, far away …
#CD22
… and two innocent developers.
(Full Hair)
(Beard)
(Hat)
#CD22
They were working happily together
#CD22
We have a need, she said.
It is going to be beautiful, she
said.
It will be so much fun to build,
she said.
We use base components,
she said.
Until one day …
#CD22
A meeting, two days before …
His dog,
Franz K.,
Architect
Herr Governor Limit
Karl,
4th Gen CEO
Inherited an Empire
(Pricebook)
#CD22
“This is our idea”, princess said
#CD22
“Find products by tabular search”, princess
said
#CD22
Franz, the Architect (sometimes a little too busy)
We always empower Admins.
Have them configure a List View on
Product2.
Use the List View to define the table.
By the way, a Pricebook has 1.500.000
products per currency. Could get a lot
more very quickly.
#CD22
We have a long standing SAP business relationship.
Picklist Values/Keys on Product2 are internal to SAP
Picklist Labels give User Guidance
Use localized Picklist Labels
Make sure fields like Term (12, 24, 36) can be
searched.
Karl, the Boss (Trailhead Ranger, Part Time Admin)
#CD22
“Here are a few pointers for you”, princess said
#CD22
Questions? Any elephants in the room?
For example:
- Are we rebuilding Standard Product Search on Opportunity?
- Is this a good idea?
#CD22
Chapter
~ II ~
#CD22
Trails for Rangers,
Crossroads for Heroes
#CD22
Front End / LEX
(Base Components)
Backend
(Apex)
Front End / LEX
(Wire Adapters)
Project Setup
(e.g. Test Data)
Where to next? Agile or Waterfall?
Backend
(sObjects)
#CD22
Forward Looking
Statement
#CD22
Official cause of death
Governor Limit
RI
P
You died
Invalid Type
Coercion
Platform
Restrictions
Fuzzy (Ideas about)
Requirements
Racing Conditions /
Flags
Performance Issues
currently in Beta
or Deprecated
#CD22
#CD22
Chapter
~ III ~
#CD22
The mole’s tale
Summer is coming
#CD22
Documentation
https://developer.salesforce.com/docs/component-library/bundle/lightning-datatable/documentation
Examples and useful Snippets
https://github.com/trailheadapps/lwc-recipes
https://github.com/trailheadapps/apex-recipes
)* in comparison to the start of Aura**
)** Aura today and all Salesforce Docs are in a much more accessible state than most other docs
Excellent state of LWC documentation*
#CD22
He’s a curious and crafty krtek
I’m off building a tiny Proof of Concept
I’m back in an hour
#CD22
He’s a curious and crafty krtek
I will
- Set up a Scratch Org with sample
data using VS Code
- Pump it full of products
- Create LWC
- Use LWC Local Development for
fast prototyping
- Use Wire Adapter to load list view
and records! I used that last year
#CD22
Official cause of death
RI
P
You died
Platform
Restrictions
Racing Conditions /
lags
currently in Beta
or Deprecated
#CD22
Official cause of death
RI
P
You died again
Platform
Restrictions
Racing Conditions /
lags
currently in Beta
or Deprecated
Needs a higher API version than
supported by LWC Local Development
#CD22
First Demo
#CD22
Forward looking statement
RI
P
You died
Performance Issues
#CD22
A Scratch Org comes with <30 Products
Use Open Source tools for data
Snowfakery Config / CumulusCI:
#CD22
Death by Platform Restriction / Limits?
Use Open Source Tools for Data
Snowfakery Config / CumulusCI:
#CD22
SUMMER IS COMING
#CD22
Here’s what we’ve learned
- A lot about client side performance
- Why Summer 22 will make it better
- Why Selections need special care
- Why there are no shortcut/s via Listview
APIs
- Decisions
- No data, no table, no columns, no table
- To talk to Apex we need to know which fields to query
first
- Use getListInfoByName()
- Salesforce Fields are also columns
- Columns need type information
- E.g. Booleans should render as a checkboxes
- Use getObjectInfo()
#CD22
Although we called it
“Tabular Product
Search”
It is not Products we are
looking for but
PricebookEntries
Official cause of death
RI
P
You died
Fuzzy (Ideas about)
Requirements
#CD22
Official cause of death
RI
P
You died again
Platform
Restrictions
PricebookEntries
Do
Not
Support
ListViews
#CD22
Official cause of death
RI
P
You almost died
a 3rd time
Racing Conditions /
Flags
Wire Adapters
are supported only in
@wired decorated
properties/function
No Promise.all()
available
#CD22
Official cause of death
Governor Limit
RI
P
You died
a 3rd time
Performance Issues
currently in Beta
or Deprecated
#CD22
Here’s what we’ve learned
- Loading fewer records is always better
for performance
- Use infinite loading
- Use offsets to avoid query limits for
LDV
- Use a record limit / threshold for
rendered rows in table
- Have we talked about sorting yet?
- String.prototype.localeCompare()
- Or Apex?
#CD22
#CD22
Sorting should work exactly
like in Salesforce
We sort things all of the time
in reports or list views
Of course …
#CD22
“This should be simple”, princess said
#CD22
Here’s what we’ve learned
- Loading fewer records is always better
for performance
- Use infinite loading
- Use offsets to avoid query limits
- Use a record limit / threshold for
rendered rows in table
- Apex does the sorting
- Works good within caching
- Needs a bit of loading otherwise
#CD22
Summary I
- LWC provides
- Offsets
- Limits
- Search Term
- SortedBy Field and Sort Direction
- LWC is responsible for
- Providing Initial Data for Apex Query
- e.g. Field Names
- Talking to Apex
- Debouncing
- Selection Handling
- Data Wrangling
- Data Table does not support
Contact.Account.Name
#CD22
Chapter
~ IV ~
#CD22
The dwarf’s tale
We dig dig dig dig dig dig dig
#CD22
The actual Fairytale (Query based on String Inputs)
(Large Data Volume)
(Strongly Typed)
#CD22
Official cause of death
Invalid Type
Coercion
Fuzzy (Ideas about)
Requirements
RI
P
You died
Platform
Restrictions
#CD22
Should you know the dwarf…
#CD22
Where Clauses and not yet dynamic SOQL
#CD22
Official cause of death
RI
P
You died
Platform
Restrictions
RI
P
You died
#CD22
Finally…
#CD22
Summary II
- Dig, Dig, Dig, Dig, Dig, Dig, Dig
- Not all field types can / will be supported for text search
- (Idea) specialised search fields for e.g. date
- All supported types need to be converted for queries
- Product2.Description is a special snowflake
- (Idea) SOSL for long text fields
- (Challenge) combine User Experience
#CD22
Summary II
- Will we meet Large Data Volume Trouble?
- No due to tight LIMIT clauses
- Rules differ for standard and custom indices
Standard Index
Total # of records is < 1M:
Query must return less than 30% of
total
Total # of records > 1M:
Query must return <300K rows
Custom Index
10% of total records and < 10k rows
#CD22
~ OPEN END ~
#CD22
Architectural Mindset: keep asking questions
Challenge “simple-use-case” documentation
Commit early, commit cleanly, commit often
Handling events as they come out of the box is not always the whole truth
Product2, PricebookEntry do not count against record limit
Inserting 1.5m records is easy, LDV Selective Query Limits are not.
Huge Gains in Summer 22 for Datatable Render Performance
Random Collection of Take-Aways
#CD22
~ RESOURCES / LINKS~
#CD22
“LWC Utils” by tsalb
- Includes a Salesforce-Records-To-Datatable Component
- https://github.com/tsalb/lwc-utils
CumulusCI
- https://trailhead.salesforce.com/en/content/learn/trails/build-applications-with-cumulusci
Apex and LWC Recipes
- https://github.com/trailheadapps/lwc-recipes
- https://github.com/trailheadapps/apex-recipes
Demo Repository for 1.5M Products/PricebookEntries & a simple datatable
- https://github.com/Szandor72/cd22-lightning-datatable
Resources / Links - all Open Source
#CD22
~ Q & A ~
#CD22
appero GmbH is hiring a new
Head of Development
Thank you for 5+ amazing years
Wanna wear my hat?
Thank you! #CD22

More Related Content

What's hot

Tackling Salesforce Technical Debt
Tackling Salesforce Technical DebtTackling Salesforce Technical Debt
Tackling Salesforce Technical Debt
panayaofficial
 
Azure DevOps CI/CD For Beginners
Azure DevOps CI/CD  For BeginnersAzure DevOps CI/CD  For Beginners
Azure DevOps CI/CD For Beginners
Rahul Nath
 
The tooling Api demystified, It is not only for developers, Doria Hamelryk & ...
The tooling Api demystified, It is not only for developers, Doria Hamelryk & ...The tooling Api demystified, It is not only for developers, Doria Hamelryk & ...
The tooling Api demystified, It is not only for developers, Doria Hamelryk & ...
CzechDreamin
 
Secure Salesforce: External App Integrations
Secure Salesforce: External App IntegrationsSecure Salesforce: External App Integrations
Secure Salesforce: External App Integrations
Salesforce Developers
 
Understanding the Salesforce Architecture: How We Do the Magic We Do
Understanding the Salesforce Architecture: How We Do the Magic We DoUnderstanding the Salesforce Architecture: How We Do the Magic We Do
Understanding the Salesforce Architecture: How We Do the Magic We Do
Salesforce Developers
 
Lightning web components - Episode 4 : Security and Testing
Lightning web components  - Episode 4 : Security and TestingLightning web components  - Episode 4 : Security and Testing
Lightning web components - Episode 4 : Security and Testing
Salesforce Developers
 
Asynchronous apex
Asynchronous apexAsynchronous apex
Fast parallel data loading with the bulk API
Fast parallel data loading with the bulk APIFast parallel data loading with the bulk API
Fast parallel data loading with the bulk API
Salesforce Developers
 
Best Practices in Implementing a Center for Enablement (C4E) within Your Orga...
Best Practices in Implementing a Center for Enablement (C4E) within Your Orga...Best Practices in Implementing a Center for Enablement (C4E) within Your Orga...
Best Practices in Implementing a Center for Enablement (C4E) within Your Orga...
MuleSoft
 
Salesforce integration best practices columbus meetup
Salesforce integration best practices   columbus meetupSalesforce integration best practices   columbus meetup
Salesforce integration best practices columbus meetup
MuleSoft Meetup
 
Admin Webinar—An Admin's Guide to Profiles & Permissions
Admin Webinar—An Admin's Guide to Profiles & PermissionsAdmin Webinar—An Admin's Guide to Profiles & Permissions
Admin Webinar—An Admin's Guide to Profiles & Permissions
Salesforce Admins
 
Change, Release, Management In-Depth vTom.pptx
Change, Release, Management In-Depth vTom.pptxChange, Release, Management In-Depth vTom.pptx
Change, Release, Management In-Depth vTom.pptx
AdilPatel34
 
Improve Developer Experience with Developer Portal
Improve Developer Experience with Developer PortalImprove Developer Experience with Developer Portal
Improve Developer Experience with Developer Portal
Kumton Suttiraksiri
 
Salesforce Integration with MuleSoft | MuleSoft Mysore Meetup #12
Salesforce Integration with MuleSoft | MuleSoft Mysore Meetup #12Salesforce Integration with MuleSoft | MuleSoft Mysore Meetup #12
Salesforce Integration with MuleSoft | MuleSoft Mysore Meetup #12
MysoreMuleSoftMeetup
 
Build Reliable Asynchronous Code with Queueable Apex
Build Reliable Asynchronous Code with Queueable ApexBuild Reliable Asynchronous Code with Queueable Apex
Build Reliable Asynchronous Code with Queueable Apex
Salesforce Developers
 
Introduction to MuleSoft Anytime Platform
Introduction to MuleSoft Anytime PlatformIntroduction to MuleSoft Anytime Platform
Introduction to MuleSoft Anytime Platform
Salesforce Developers
 
What is Platform as a Product? Clues from Team Topologies @ DevOps Porto meet...
What is Platform as a Product? Clues from Team Topologies @ DevOps Porto meet...What is Platform as a Product? Clues from Team Topologies @ DevOps Porto meet...
What is Platform as a Product? Clues from Team Topologies @ DevOps Porto meet...
Manuel Pais
 
Business Process Mapping for Salesforce Admins
Business Process Mapping for Salesforce AdminsBusiness Process Mapping for Salesforce Admins
Business Process Mapping for Salesforce Admins
Salesforce Admins
 
Api complete life cycle with api security
Api complete life cycle with api securityApi complete life cycle with api security
Api complete life cycle with api security
pqrs1234
 

What's hot (20)

Tackling Salesforce Technical Debt
Tackling Salesforce Technical DebtTackling Salesforce Technical Debt
Tackling Salesforce Technical Debt
 
Introduction to Apex Triggers
Introduction to Apex TriggersIntroduction to Apex Triggers
Introduction to Apex Triggers
 
Azure DevOps CI/CD For Beginners
Azure DevOps CI/CD  For BeginnersAzure DevOps CI/CD  For Beginners
Azure DevOps CI/CD For Beginners
 
The tooling Api demystified, It is not only for developers, Doria Hamelryk & ...
The tooling Api demystified, It is not only for developers, Doria Hamelryk & ...The tooling Api demystified, It is not only for developers, Doria Hamelryk & ...
The tooling Api demystified, It is not only for developers, Doria Hamelryk & ...
 
Secure Salesforce: External App Integrations
Secure Salesforce: External App IntegrationsSecure Salesforce: External App Integrations
Secure Salesforce: External App Integrations
 
Understanding the Salesforce Architecture: How We Do the Magic We Do
Understanding the Salesforce Architecture: How We Do the Magic We DoUnderstanding the Salesforce Architecture: How We Do the Magic We Do
Understanding the Salesforce Architecture: How We Do the Magic We Do
 
Lightning web components - Episode 4 : Security and Testing
Lightning web components  - Episode 4 : Security and TestingLightning web components  - Episode 4 : Security and Testing
Lightning web components - Episode 4 : Security and Testing
 
Asynchronous apex
Asynchronous apexAsynchronous apex
Asynchronous apex
 
Fast parallel data loading with the bulk API
Fast parallel data loading with the bulk APIFast parallel data loading with the bulk API
Fast parallel data loading with the bulk API
 
Best Practices in Implementing a Center for Enablement (C4E) within Your Orga...
Best Practices in Implementing a Center for Enablement (C4E) within Your Orga...Best Practices in Implementing a Center for Enablement (C4E) within Your Orga...
Best Practices in Implementing a Center for Enablement (C4E) within Your Orga...
 
Salesforce integration best practices columbus meetup
Salesforce integration best practices   columbus meetupSalesforce integration best practices   columbus meetup
Salesforce integration best practices columbus meetup
 
Admin Webinar—An Admin's Guide to Profiles & Permissions
Admin Webinar—An Admin's Guide to Profiles & PermissionsAdmin Webinar—An Admin's Guide to Profiles & Permissions
Admin Webinar—An Admin's Guide to Profiles & Permissions
 
Change, Release, Management In-Depth vTom.pptx
Change, Release, Management In-Depth vTom.pptxChange, Release, Management In-Depth vTom.pptx
Change, Release, Management In-Depth vTom.pptx
 
Improve Developer Experience with Developer Portal
Improve Developer Experience with Developer PortalImprove Developer Experience with Developer Portal
Improve Developer Experience with Developer Portal
 
Salesforce Integration with MuleSoft | MuleSoft Mysore Meetup #12
Salesforce Integration with MuleSoft | MuleSoft Mysore Meetup #12Salesforce Integration with MuleSoft | MuleSoft Mysore Meetup #12
Salesforce Integration with MuleSoft | MuleSoft Mysore Meetup #12
 
Build Reliable Asynchronous Code with Queueable Apex
Build Reliable Asynchronous Code with Queueable ApexBuild Reliable Asynchronous Code with Queueable Apex
Build Reliable Asynchronous Code with Queueable Apex
 
Introduction to MuleSoft Anytime Platform
Introduction to MuleSoft Anytime PlatformIntroduction to MuleSoft Anytime Platform
Introduction to MuleSoft Anytime Platform
 
What is Platform as a Product? Clues from Team Topologies @ DevOps Porto meet...
What is Platform as a Product? Clues from Team Topologies @ DevOps Porto meet...What is Platform as a Product? Clues from Team Topologies @ DevOps Porto meet...
What is Platform as a Product? Clues from Team Topologies @ DevOps Porto meet...
 
Business Process Mapping for Salesforce Admins
Business Process Mapping for Salesforce AdminsBusiness Process Mapping for Salesforce Admins
Business Process Mapping for Salesforce Admins
 
Api complete life cycle with api security
Api complete life cycle with api securityApi complete life cycle with api security
Api complete life cycle with api security
 

Similar to LWC Datatable LDV, Christian Knapp & Christian Menzinger

Netflix's Transition to High-Availability Storage (QCon SF 2010)
Netflix's Transition to High-Availability Storage (QCon SF 2010)Netflix's Transition to High-Availability Storage (QCon SF 2010)
Netflix's Transition to High-Availability Storage (QCon SF 2010)
Sid Anand
 
OrientDB - the 2nd generation of (MultiModel) NoSQL - Luigi Dell Aquila - Cod...
OrientDB - the 2nd generation of (MultiModel) NoSQL - Luigi Dell Aquila - Cod...OrientDB - the 2nd generation of (MultiModel) NoSQL - Luigi Dell Aquila - Cod...
OrientDB - the 2nd generation of (MultiModel) NoSQL - Luigi Dell Aquila - Cod...
Codemotion
 
Bogdan Kecman Advanced Databasing
Bogdan Kecman Advanced DatabasingBogdan Kecman Advanced Databasing
Bogdan Kecman Advanced Databasing
Bogdan Kecman
 
OrientDB - the 2nd generation of (Multi-Model) NoSQL - J On The Beach 2016
OrientDB - the 2nd generation of (Multi-Model) NoSQL  - J On The Beach 2016OrientDB - the 2nd generation of (Multi-Model) NoSQL  - J On The Beach 2016
OrientDB - the 2nd generation of (Multi-Model) NoSQL - J On The Beach 2016
Luigi Dell'Aquila
 
Svccg nosql 2011_v4
Svccg nosql 2011_v4Svccg nosql 2011_v4
Svccg nosql 2011_v4
Sid Anand
 
Bogdan Kecman INIT Presentation
Bogdan Kecman INIT PresentationBogdan Kecman INIT Presentation
Bogdan Kecman INIT Presentation
arhismece
 
Tuning and Debugging in Apache Spark
Tuning and Debugging in Apache SparkTuning and Debugging in Apache Spark
Tuning and Debugging in Apache Spark
Databricks
 
A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...
A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...
A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...
Databricks
 
Lessons from the Field, Episode II: Applying Best Practices to Your Apache S...
 Lessons from the Field, Episode II: Applying Best Practices to Your Apache S... Lessons from the Field, Episode II: Applying Best Practices to Your Apache S...
Lessons from the Field, Episode II: Applying Best Practices to Your Apache S...
Databricks
 
Spark Cassandra 2016
Spark Cassandra 2016Spark Cassandra 2016
Spark Cassandra 2016
Duyhai Doan
 
Introduction to Spark Datasets - Functional and relational together at last
Introduction to Spark Datasets - Functional and relational together at lastIntroduction to Spark Datasets - Functional and relational together at last
Introduction to Spark Datasets - Functional and relational together at last
Holden Karau
 
Apache Spark Best Practices Meetup Talk
Apache Spark Best Practices Meetup TalkApache Spark Best Practices Meetup Talk
Apache Spark Best Practices Meetup Talk
Eren Avşaroğulları
 
How to build TiDB
How to build TiDBHow to build TiDB
How to build TiDB
PingCAP
 
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016
Luigi Dell'Aquila
 
Spark cassandra integration 2016
Spark cassandra integration 2016Spark cassandra integration 2016
Spark cassandra integration 2016
Duyhai Doan
 
Road to Enterprise Architecture for Big Data Applications: Mixing Apache Spar...
Road to Enterprise Architecture for Big Data Applications: Mixing Apache Spar...Road to Enterprise Architecture for Big Data Applications: Mixing Apache Spar...
Road to Enterprise Architecture for Big Data Applications: Mixing Apache Spar...
Databricks
 
Crystal internals (part 1)
Crystal internals (part 1)Crystal internals (part 1)
Crystal internals (part 1)
Ary Borenszweig
 
Crystal internals (part 1)
Crystal internals (part 1)Crystal internals (part 1)
Crystal internals (part 1)
Ary Borenszweig
 
Crystal internals (part 1)
Crystal internals (part 1)Crystal internals (part 1)
Crystal internals (part 1)
Crystal Language
 
Tuning and Debugging in Apache Spark
Tuning and Debugging in Apache SparkTuning and Debugging in Apache Spark
Tuning and Debugging in Apache Spark
Patrick Wendell
 

Similar to LWC Datatable LDV, Christian Knapp & Christian Menzinger (20)

Netflix's Transition to High-Availability Storage (QCon SF 2010)
Netflix's Transition to High-Availability Storage (QCon SF 2010)Netflix's Transition to High-Availability Storage (QCon SF 2010)
Netflix's Transition to High-Availability Storage (QCon SF 2010)
 
OrientDB - the 2nd generation of (MultiModel) NoSQL - Luigi Dell Aquila - Cod...
OrientDB - the 2nd generation of (MultiModel) NoSQL - Luigi Dell Aquila - Cod...OrientDB - the 2nd generation of (MultiModel) NoSQL - Luigi Dell Aquila - Cod...
OrientDB - the 2nd generation of (MultiModel) NoSQL - Luigi Dell Aquila - Cod...
 
Bogdan Kecman Advanced Databasing
Bogdan Kecman Advanced DatabasingBogdan Kecman Advanced Databasing
Bogdan Kecman Advanced Databasing
 
OrientDB - the 2nd generation of (Multi-Model) NoSQL - J On The Beach 2016
OrientDB - the 2nd generation of (Multi-Model) NoSQL  - J On The Beach 2016OrientDB - the 2nd generation of (Multi-Model) NoSQL  - J On The Beach 2016
OrientDB - the 2nd generation of (Multi-Model) NoSQL - J On The Beach 2016
 
Svccg nosql 2011_v4
Svccg nosql 2011_v4Svccg nosql 2011_v4
Svccg nosql 2011_v4
 
Bogdan Kecman INIT Presentation
Bogdan Kecman INIT PresentationBogdan Kecman INIT Presentation
Bogdan Kecman INIT Presentation
 
Tuning and Debugging in Apache Spark
Tuning and Debugging in Apache SparkTuning and Debugging in Apache Spark
Tuning and Debugging in Apache Spark
 
A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...
A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...
A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...
 
Lessons from the Field, Episode II: Applying Best Practices to Your Apache S...
 Lessons from the Field, Episode II: Applying Best Practices to Your Apache S... Lessons from the Field, Episode II: Applying Best Practices to Your Apache S...
Lessons from the Field, Episode II: Applying Best Practices to Your Apache S...
 
Spark Cassandra 2016
Spark Cassandra 2016Spark Cassandra 2016
Spark Cassandra 2016
 
Introduction to Spark Datasets - Functional and relational together at last
Introduction to Spark Datasets - Functional and relational together at lastIntroduction to Spark Datasets - Functional and relational together at last
Introduction to Spark Datasets - Functional and relational together at last
 
Apache Spark Best Practices Meetup Talk
Apache Spark Best Practices Meetup TalkApache Spark Best Practices Meetup Talk
Apache Spark Best Practices Meetup Talk
 
How to build TiDB
How to build TiDBHow to build TiDB
How to build TiDB
 
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016
 
Spark cassandra integration 2016
Spark cassandra integration 2016Spark cassandra integration 2016
Spark cassandra integration 2016
 
Road to Enterprise Architecture for Big Data Applications: Mixing Apache Spar...
Road to Enterprise Architecture for Big Data Applications: Mixing Apache Spar...Road to Enterprise Architecture for Big Data Applications: Mixing Apache Spar...
Road to Enterprise Architecture for Big Data Applications: Mixing Apache Spar...
 
Crystal internals (part 1)
Crystal internals (part 1)Crystal internals (part 1)
Crystal internals (part 1)
 
Crystal internals (part 1)
Crystal internals (part 1)Crystal internals (part 1)
Crystal internals (part 1)
 
Crystal internals (part 1)
Crystal internals (part 1)Crystal internals (part 1)
Crystal internals (part 1)
 
Tuning and Debugging in Apache Spark
Tuning and Debugging in Apache SparkTuning and Debugging in Apache Spark
Tuning and Debugging in Apache Spark
 

More from CzechDreamin

10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
CzechDreamin
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
CzechDreamin
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
CzechDreamin
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
CzechDreamin
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
CzechDreamin
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
CzechDreamin
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
CzechDreamin
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
CzechDreamin
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
CzechDreamin
 
Salesforce Forecasting: Evolution, Implementation and Best Practices, Christi...
Salesforce Forecasting: Evolution, Implementation and Best Practices, Christi...Salesforce Forecasting: Evolution, Implementation and Best Practices, Christi...
Salesforce Forecasting: Evolution, Implementation and Best Practices, Christi...
CzechDreamin
 
Supercharge Salesforce Marketing Cloud: The Ultimate Apps Guide, Cyril Louis ...
Supercharge Salesforce Marketing Cloud: The Ultimate Apps Guide, Cyril Louis ...Supercharge Salesforce Marketing Cloud: The Ultimate Apps Guide, Cyril Louis ...
Supercharge Salesforce Marketing Cloud: The Ultimate Apps Guide, Cyril Louis ...
CzechDreamin
 
How we should include Devops Center to get happy developers?, David Fernandez...
How we should include Devops Center to get happy developers?, David Fernandez...How we should include Devops Center to get happy developers?, David Fernandez...
How we should include Devops Center to get happy developers?, David Fernandez...
CzechDreamin
 
Streamline Your Integration with Salesforce’s Composite API: A Consultant’s G...
Streamline Your Integration with Salesforce’s Composite API: A Consultant’s G...Streamline Your Integration with Salesforce’s Composite API: A Consultant’s G...
Streamline Your Integration with Salesforce’s Composite API: A Consultant’s G...
CzechDreamin
 
Architecting for Analytics, Aaron Crear
Architecting for Analytics, Aaron CrearArchitecting for Analytics, Aaron Crear
Architecting for Analytics, Aaron Crear
CzechDreamin
 
Ape to API, Filip Dousek
Ape to API, Filip DousekApe to API, Filip Dousek
Ape to API, Filip Dousek
CzechDreamin
 
Push Upgrades, The last mile of Salesforce DevOps, Manuel Moya
Push Upgrades, The last mile of Salesforce DevOps, Manuel MoyaPush Upgrades, The last mile of Salesforce DevOps, Manuel Moya
Push Upgrades, The last mile of Salesforce DevOps, Manuel Moya
CzechDreamin
 
How do you know you’re solving the right problem? Design Thinking for Salesfo...
How do you know you’re solving the right problem? Design Thinking for Salesfo...How do you know you’re solving the right problem? Design Thinking for Salesfo...
How do you know you’re solving the right problem? Design Thinking for Salesfo...
CzechDreamin
 
ChatGPT … How Does it Flow?, Mark Jones
ChatGPT … How Does it Flow?, Mark JonesChatGPT … How Does it Flow?, Mark Jones
ChatGPT … How Does it Flow?, Mark Jones
CzechDreamin
 
Real-time communication with Account Engagement (Pardot). Marketers meet deve...
Real-time communication with Account Engagement (Pardot). Marketers meet deve...Real-time communication with Account Engagement (Pardot). Marketers meet deve...
Real-time communication with Account Engagement (Pardot). Marketers meet deve...
CzechDreamin
 
Black Hat Session: Exploring and Exploiting Aura based Experiences, Christian...
Black Hat Session: Exploring and Exploiting Aura based Experiences, Christian...Black Hat Session: Exploring and Exploiting Aura based Experiences, Christian...
Black Hat Session: Exploring and Exploiting Aura based Experiences, Christian...
CzechDreamin
 

More from CzechDreamin (20)

10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
Salesforce Forecasting: Evolution, Implementation and Best Practices, Christi...
Salesforce Forecasting: Evolution, Implementation and Best Practices, Christi...Salesforce Forecasting: Evolution, Implementation and Best Practices, Christi...
Salesforce Forecasting: Evolution, Implementation and Best Practices, Christi...
 
Supercharge Salesforce Marketing Cloud: The Ultimate Apps Guide, Cyril Louis ...
Supercharge Salesforce Marketing Cloud: The Ultimate Apps Guide, Cyril Louis ...Supercharge Salesforce Marketing Cloud: The Ultimate Apps Guide, Cyril Louis ...
Supercharge Salesforce Marketing Cloud: The Ultimate Apps Guide, Cyril Louis ...
 
How we should include Devops Center to get happy developers?, David Fernandez...
How we should include Devops Center to get happy developers?, David Fernandez...How we should include Devops Center to get happy developers?, David Fernandez...
How we should include Devops Center to get happy developers?, David Fernandez...
 
Streamline Your Integration with Salesforce’s Composite API: A Consultant’s G...
Streamline Your Integration with Salesforce’s Composite API: A Consultant’s G...Streamline Your Integration with Salesforce’s Composite API: A Consultant’s G...
Streamline Your Integration with Salesforce’s Composite API: A Consultant’s G...
 
Architecting for Analytics, Aaron Crear
Architecting for Analytics, Aaron CrearArchitecting for Analytics, Aaron Crear
Architecting for Analytics, Aaron Crear
 
Ape to API, Filip Dousek
Ape to API, Filip DousekApe to API, Filip Dousek
Ape to API, Filip Dousek
 
Push Upgrades, The last mile of Salesforce DevOps, Manuel Moya
Push Upgrades, The last mile of Salesforce DevOps, Manuel MoyaPush Upgrades, The last mile of Salesforce DevOps, Manuel Moya
Push Upgrades, The last mile of Salesforce DevOps, Manuel Moya
 
How do you know you’re solving the right problem? Design Thinking for Salesfo...
How do you know you’re solving the right problem? Design Thinking for Salesfo...How do you know you’re solving the right problem? Design Thinking for Salesfo...
How do you know you’re solving the right problem? Design Thinking for Salesfo...
 
ChatGPT … How Does it Flow?, Mark Jones
ChatGPT … How Does it Flow?, Mark JonesChatGPT … How Does it Flow?, Mark Jones
ChatGPT … How Does it Flow?, Mark Jones
 
Real-time communication with Account Engagement (Pardot). Marketers meet deve...
Real-time communication with Account Engagement (Pardot). Marketers meet deve...Real-time communication with Account Engagement (Pardot). Marketers meet deve...
Real-time communication with Account Engagement (Pardot). Marketers meet deve...
 
Black Hat Session: Exploring and Exploiting Aura based Experiences, Christian...
Black Hat Session: Exploring and Exploiting Aura based Experiences, Christian...Black Hat Session: Exploring and Exploiting Aura based Experiences, Christian...
Black Hat Session: Exploring and Exploiting Aura based Experiences, Christian...
 

Recently uploaded

Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
mz5nrf0n
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
Roshan Dwivedi
 
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
kalichargn70th171
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
Hironori Washizaki
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 

Recently uploaded (20)

Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
 
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 

LWC Datatable LDV, Christian Knapp & Christian Menzinger

  • 1. Having serious fun with LWC Datatable and Large Data Volume by Christian Szandor Knapp & Christian Menzinger
  • 2. #CD22 About us Christian Menzinger Salesforce Architect, Copado @chris_menzinger https://www.linkedin.com/in/christianmenzinger Christian Szandor Knapp Head of Development, appero @ch_sz_knapp https://www.linkedin.com/in/szandor
  • 3. #CD22 - Chapter I - In a Land far, far away - Chapter II - Trails for Rangers, Crossroads for Heroes - Chapter III - The mole’s tale - Summer is coming - Chapter IV - The dwarf’s tale - We dig, dig, dig, dig, dig, dig, dig - Running out of time - Q&A Your Fairytale Today
  • 5. #CD22 In a Land far, far away
  • 6. #CD22 … there was a charming product owner princess Once upon a time, in a land far, far away …
  • 7. #CD22 … and two innocent developers. (Full Hair) (Beard) (Hat)
  • 8. #CD22 They were working happily together
  • 9. #CD22 We have a need, she said. It is going to be beautiful, she said. It will be so much fun to build, she said. We use base components, she said. Until one day …
  • 10. #CD22 A meeting, two days before … His dog, Franz K., Architect Herr Governor Limit Karl, 4th Gen CEO Inherited an Empire (Pricebook)
  • 11. #CD22 “This is our idea”, princess said
  • 12. #CD22 “Find products by tabular search”, princess said
  • 13. #CD22 Franz, the Architect (sometimes a little too busy) We always empower Admins. Have them configure a List View on Product2. Use the List View to define the table. By the way, a Pricebook has 1.500.000 products per currency. Could get a lot more very quickly.
  • 14. #CD22 We have a long standing SAP business relationship. Picklist Values/Keys on Product2 are internal to SAP Picklist Labels give User Guidance Use localized Picklist Labels Make sure fields like Term (12, 24, 36) can be searched. Karl, the Boss (Trailhead Ranger, Part Time Admin)
  • 15. #CD22 “Here are a few pointers for you”, princess said
  • 16. #CD22 Questions? Any elephants in the room? For example: - Are we rebuilding Standard Product Search on Opportunity? - Is this a good idea?
  • 19. #CD22 Front End / LEX (Base Components) Backend (Apex) Front End / LEX (Wire Adapters) Project Setup (e.g. Test Data) Where to next? Agile or Waterfall? Backend (sObjects)
  • 21. #CD22 Official cause of death Governor Limit RI P You died Invalid Type Coercion Platform Restrictions Fuzzy (Ideas about) Requirements Racing Conditions / Flags Performance Issues currently in Beta or Deprecated
  • 22. #CD22
  • 25. #CD22 Documentation https://developer.salesforce.com/docs/component-library/bundle/lightning-datatable/documentation Examples and useful Snippets https://github.com/trailheadapps/lwc-recipes https://github.com/trailheadapps/apex-recipes )* in comparison to the start of Aura** )** Aura today and all Salesforce Docs are in a much more accessible state than most other docs Excellent state of LWC documentation*
  • 26. #CD22 He’s a curious and crafty krtek I’m off building a tiny Proof of Concept I’m back in an hour
  • 27. #CD22 He’s a curious and crafty krtek I will - Set up a Scratch Org with sample data using VS Code - Pump it full of products - Create LWC - Use LWC Local Development for fast prototyping - Use Wire Adapter to load list view and records! I used that last year
  • 28. #CD22 Official cause of death RI P You died Platform Restrictions Racing Conditions / lags currently in Beta or Deprecated
  • 29. #CD22 Official cause of death RI P You died again Platform Restrictions Racing Conditions / lags currently in Beta or Deprecated Needs a higher API version than supported by LWC Local Development
  • 31. #CD22 Forward looking statement RI P You died Performance Issues
  • 32. #CD22 A Scratch Org comes with <30 Products Use Open Source tools for data Snowfakery Config / CumulusCI:
  • 33. #CD22 Death by Platform Restriction / Limits? Use Open Source Tools for Data Snowfakery Config / CumulusCI:
  • 35. #CD22 Here’s what we’ve learned - A lot about client side performance - Why Summer 22 will make it better - Why Selections need special care - Why there are no shortcut/s via Listview APIs - Decisions - No data, no table, no columns, no table - To talk to Apex we need to know which fields to query first - Use getListInfoByName() - Salesforce Fields are also columns - Columns need type information - E.g. Booleans should render as a checkboxes - Use getObjectInfo()
  • 36. #CD22 Although we called it “Tabular Product Search” It is not Products we are looking for but PricebookEntries Official cause of death RI P You died Fuzzy (Ideas about) Requirements
  • 37. #CD22 Official cause of death RI P You died again Platform Restrictions PricebookEntries Do Not Support ListViews
  • 38. #CD22 Official cause of death RI P You almost died a 3rd time Racing Conditions / Flags Wire Adapters are supported only in @wired decorated properties/function No Promise.all() available
  • 39. #CD22 Official cause of death Governor Limit RI P You died a 3rd time Performance Issues currently in Beta or Deprecated
  • 40. #CD22 Here’s what we’ve learned - Loading fewer records is always better for performance - Use infinite loading - Use offsets to avoid query limits for LDV - Use a record limit / threshold for rendered rows in table - Have we talked about sorting yet? - String.prototype.localeCompare() - Or Apex?
  • 41. #CD22
  • 42. #CD22 Sorting should work exactly like in Salesforce We sort things all of the time in reports or list views Of course …
  • 43. #CD22 “This should be simple”, princess said
  • 44. #CD22 Here’s what we’ve learned - Loading fewer records is always better for performance - Use infinite loading - Use offsets to avoid query limits - Use a record limit / threshold for rendered rows in table - Apex does the sorting - Works good within caching - Needs a bit of loading otherwise
  • 45. #CD22 Summary I - LWC provides - Offsets - Limits - Search Term - SortedBy Field and Sort Direction - LWC is responsible for - Providing Initial Data for Apex Query - e.g. Field Names - Talking to Apex - Debouncing - Selection Handling - Data Wrangling - Data Table does not support Contact.Account.Name
  • 47. #CD22 The dwarf’s tale We dig dig dig dig dig dig dig
  • 48. #CD22 The actual Fairytale (Query based on String Inputs) (Large Data Volume) (Strongly Typed)
  • 49. #CD22 Official cause of death Invalid Type Coercion Fuzzy (Ideas about) Requirements RI P You died Platform Restrictions
  • 50. #CD22 Should you know the dwarf…
  • 51. #CD22 Where Clauses and not yet dynamic SOQL
  • 52. #CD22 Official cause of death RI P You died Platform Restrictions RI P You died
  • 54. #CD22 Summary II - Dig, Dig, Dig, Dig, Dig, Dig, Dig - Not all field types can / will be supported for text search - (Idea) specialised search fields for e.g. date - All supported types need to be converted for queries - Product2.Description is a special snowflake - (Idea) SOSL for long text fields - (Challenge) combine User Experience
  • 55. #CD22 Summary II - Will we meet Large Data Volume Trouble? - No due to tight LIMIT clauses - Rules differ for standard and custom indices Standard Index Total # of records is < 1M: Query must return less than 30% of total Total # of records > 1M: Query must return <300K rows Custom Index 10% of total records and < 10k rows
  • 57. #CD22 Architectural Mindset: keep asking questions Challenge “simple-use-case” documentation Commit early, commit cleanly, commit often Handling events as they come out of the box is not always the whole truth Product2, PricebookEntry do not count against record limit Inserting 1.5m records is easy, LDV Selective Query Limits are not. Huge Gains in Summer 22 for Datatable Render Performance Random Collection of Take-Aways
  • 59. #CD22 “LWC Utils” by tsalb - Includes a Salesforce-Records-To-Datatable Component - https://github.com/tsalb/lwc-utils CumulusCI - https://trailhead.salesforce.com/en/content/learn/trails/build-applications-with-cumulusci Apex and LWC Recipes - https://github.com/trailheadapps/lwc-recipes - https://github.com/trailheadapps/apex-recipes Demo Repository for 1.5M Products/PricebookEntries & a simple datatable - https://github.com/Szandor72/cd22-lightning-datatable Resources / Links - all Open Source
  • 60. #CD22 ~ Q & A ~
  • 61. #CD22 appero GmbH is hiring a new Head of Development Thank you for 5+ amazing years Wanna wear my hat?

Editor's Notes

  1. “What did we miss in the meantime?” “ A meeting, two days before between Franz and Karl …. “
  2. Why not Pricebook Entry List View? Because not available / supported . admins cannot configure listviews on PBE
  3. Answer: Partly, yes. Opp Product Search works only in one place, though. We build a level more generic - the same search can be used for opp products as well as order products for example. Assets could work similarly.
  4. See, if our heroes had only known what expected them. But they didn’t. Ignorance is a bliss sometimes.
  5. Hop into documentation
  6. Scratch Org timeouts didn’t help, either…
  7. Krtek made his demo much simpler;
  8. Now, how can that happen in the very first PoC?
  9. NO death by governor limit?
  10. NO death by governor limit? Nope; not even data limits :)
  11. It is still Spring, virtual rendering is only available in Sandboxes / Preview Orgs Even if we could why would we want to load 5000+ records? Given we have a 1.5 M Products (and pricebook entries), we could hit the 50.000 query row limit
  12. Why / where should we sort / how?
  13. String.prototype.localeCompare() - JavaScript | MDN (mozilla.org)
  14. Why / where should we sort / how?
  15. SOQL / SOSL ?
  16. Over 20 DisplayTypes DisplayType Enum | Apex Reference Guide | Salesforce Developers
  17. This is a best case scenario Is this secure?
  18. Long text not searchable
  19. Explain switch statement
  20. The most records that could ever be returned for the query to be considered selective is 1M but the total data set size would need to be > 5.6M records Steve Baines
  21. The most records that could ever be returned for the query to be considered selective is 1M but the total data set size would need to be > 5.6M records Steve Baines
  22. I have a question: why was there never any mention of large data volume again?
  23. I have a question: why was there never any mention of large data volume again?