16
High performance Web Service Callouts on force.com

Callout architecture

Embed Size (px)

DESCRIPTION

from October North Bay salesforce DUG. How to use a callout proxy and non-blocking rolling curl to break through force.com governor limits.

Citation preview

Page 1: Callout architecture

High performance Web Service Callouts on force.com

Page 2: Callout architecture

Problem #1

Per-Transaction limits

Page 3: Callout architecture

Problem #2

Platform limits

Page 4: Callout architecture

Native solution

callout 1callout 2callout 3…callout 100

HTTP:callout 1callout 2…callout 10

BACKLOG:callout 11…callout 100

HTTP:callout 11callout 12…callout 20

BACKLOG:callout 21…callout 100

HTTP:callout 91callout 92…callout 100

BACKLOG:

Page 5: Callout architecture

Native solution code demo• https://na15.salesforce.com

• http://some.webservice.com/viewer.php

Page 6: Callout architecture

demo

Page 7: Callout architecture

demo

Page 8: Callout architecture

demo

Page 9: Callout architecture

Scalable, but slow.

Page 10: Callout architecture

Proxy solution

1 calloutInfinite

records

calloutproxy

request full record data from IDs

Some web service

Receive full record data

Page 11: Callout architecture

Rolling curl• Smarter Implementation of php’s

curl_multi_exec

• https://code.google.com/p/rolling-curl

Page 12: Callout architecture

demo

Page 13: Callout architecture
Page 14: Callout architecture

Demo code on github

https://github.com/danieljpeter/high_performance_force.com_callouts

Page 15: Callout architecture

Scalable, fast, but another thing to maintain.

Page 16: Callout architecture

Thanks!@danieljpeter