SlideShare a Scribd company logo
Overcoming the Challenges of
Experimentation on a Service
Oriented Architecture
Lupin Campos & Stephen Schwahn

September 2020
Hi! We are Lupin and Steph :)
Lupin Campos
Director of Product Growth
Tech Startup Founder (Funnely)
Software Development Company Founder (Leanbirds & Condiminds)
Former Venture Partner @ 500Startups
Steph Schwahn
Growth Team Tech Lead
Tech Startup Founder (Crescendo)
Mobile App Development Company Founder (Plutonium Apps)
Georgia Tech Alumni, graduated with high honors.
So far:
- 1 complete backend refactor 

- 2 frontend refactors

- 36 Registration flow experiments (web + fullstack)

- 40% Improvement on Registration Conversion Rate
1Let’s Get Into
Context
A quick note on who we are, what we do, and the
challenges that we found in the way.
This is our registration Process...
Phone
Number
Role
Verification
Code
Email &
Password
Child Info
Personal
Info
Sync
Bank Acc
(Website)
….And here are the services behind it.
A simplified version, you don’t want to see the entire thing. Trust us.
1Service Oriented Architectures with
Optimizely
(the wrong way)
Greenlight Financial Technology, Inc.
SOA with Optimizely Fullstack on Frontend
Web
App
Marketing
Site
Mobile
App Edge
Service
1
Edge
Service
2
Nested
Service
1
Nested
Service
2
Helper
Service
1
Backend
Greenlight Financial Technology, Inc.
SOA with Optimizely Fullstack on Frontend
Web
App
Marketing
Site
Mobile
App Edge
Service
1
Edge
Service
2
Nested
Service
1
Nested
Service
2
Helper
Service
1
Backend
Variant: Variant 1
Variable: FlowId = 6
Greenlight Financial Technology, Inc.
SOA with Optimizely Fullstack
Web
App
Marketing
Site
Mobile
App Edge
Service
1
Edge
Service
2
Nested
Service
1
Nested
Service
2
Helper
Service
1
Backend
User_id: '1234_4321'
Greenlight Financial Technology, Inc.
SOA with Optimizely Fullstack
Web
App
Marketing
Site
Mobile
App Edge
Service
1
Edge
Service
2
Nested
Service
1
Nested
Service
2
Helper
Service
1
Backend
User_id: '1234_4321'
30s 40s
400s 200s
5s
Greenlight Financial Technology, Inc.
SOA with Optimizely Fullstack
Web
App
Marketing
Site
Mobile
App Edge
Service
1
Edge
Service
2
Nested
Service
1
Nested
Service
2
Helper
Service
1
Backend
User_id: '1234_4321'
30s 40s
400s 200s
5s
1Service Oriented Architectures with
Optimizely
(our way)
Greenlight Financial Technology, Inc.
Solution: SOA with Optimizely Agent
Marketing
Site
Mobile
App Edge
Service
1
Edge
Service
2
Nested
Service
1
Nested
Service
2
Helper
Service
1
Backend
Feature or Experiment
Key: 'featureTest’
User_id: '1234_4321'
Optimizely
Agent
30s
Web
App
Greenlight Financial Technology, Inc.
In Practice….
Client 1
Client 2
Client n
.
.
.
Ambassador
(API Gateway)
Pod (3-30 running based on traffic)
Optimizely
Service
(Node.js)
Optimizely
Agentlocalhost:8080
Datafile sync
(every 30s)
localhost:3000
Exposes Optimizely Service
on service port 80
Service
grpc:80
pod-ip:3000
NodeJS Container Go Container (sidecar)
Datafile
pod-ip:3000pod-ip:3000
1Let’s talk about “User ID”
And how do we pass it everywhere!
Greenlight Financial Technology, Inc.
Used for bucketing
MurmurHash(“user_1234”)
Rollout to 60%
Greenlight Financial Technology, Inc.
Used for bucketing
MurmurHash(“user_5678”)
Rollout to 60%
Greenlight Financial Technology, Inc.
What if we don’t have the user id?
MurmurHash(“steph@greenlight.me”)
?
Rollout to 60%
Greenlight Financial Technology, Inc.
Introducing the Experimentation ID!
MurmurHash(“exp_user_1234”)
Rollout to 60%
1Introducing
Experimentation-ID
Service
How we keep a consistent user id regardless of
context
Greenlight Financial Technology, Inc.
Experimentation
-ID service
Greenlight Financial Technology, Inc.
Optimizely Service orchestrates
Greenlight Financial Technology, Inc.
New API Contract!
export type Context = UserIdContext | EmailContext | AnonymousIdContext | RegistrationIdContext | DeviceInfoContext
export type EmailContext = {
email: string
}
export type AnonymousIdContext = {
anonymousId: string
}
export type DeviceInfoContext = {
deviceOs: string,
deviceToken: string
}
export type UserIdContext = {
userId: string
}
export type RegistrationIdContext = {
registrationId: string
}
export function isFeatureEnabled(featureKey: string, context: Context, attributes?: Attributes)
export function getEnabledFeatures(context: Context, attributes?: Attributes)
...
1Truly Full Stack
Experimentation
Through the ENTIRE user journey, from the
marketing landing page, through registration
services, and all the way to fundamental service
primitives
Thank You
greenlightcard.com #greenlight
Science of delivering it right

More Related Content

PDF
Optimizely Agent: Scaling Resilient Feature Delivery
PPTX
Shipping to Learn and Accelerate Growth with GitHub
PPTX
AMC Networks Experiments Faster on the Server Side
PPTX
Test Everything: TrustRadius Delivers Customer Value with Experimentation
PDF
The Future of Optimizely for Technical Teams
PDF
Atlassian's Mystique CLI, Minimizing the Experiment Development Cycle
PPTX
How The Zebra Utilized Feature Experiments To Increase Carrier Card Engagemen...
PDF
Opticon 2017 Decisions at Scale
Optimizely Agent: Scaling Resilient Feature Delivery
Shipping to Learn and Accelerate Growth with GitHub
AMC Networks Experiments Faster on the Server Side
Test Everything: TrustRadius Delivers Customer Value with Experimentation
The Future of Optimizely for Technical Teams
Atlassian's Mystique CLI, Minimizing the Experiment Development Cycle
How The Zebra Utilized Feature Experiments To Increase Carrier Card Engagemen...
Opticon 2017 Decisions at Scale

What's hot (20)

PPTX
Opticon 2017 How Developers Can Take Experimentation
PDF
[Webinar] Innovate Faster by Adopting The Modern Growth Stack
PDF
Ahead of the Curve: How 23andMe Improved UX with Performance Edge
PDF
Evolving Experimentation from CRO to Product Development
PDF
[Webinar] How Vivid Seats Ensures Experimentation Success
PDF
SFScon21 - Paolo d’Incau - Going to production in a few months – How we did it!
PDF
ATAGTR2017 What Lies Beneath Robotics Process Automation
PPTX
Streamlining Automation Scripts and Test Data Management
PDF
[Webinar] Visa's Journey to a Culture of Experimentation
PPTX
Evolve or Die: Healthcare IT Testing | QASymphony Webinar
PDF
6 Strategies to Uncover Growth Opportunities for Your Business
PPTX
Taking Your Product Development to the Next Level with Full Stack
PPTX
Thinking Beyond HPQC ALM
PPTX
Supercharging Optimizely Performance by Moving Decisions to the Edge
PPTX
Take Your Experimentation Program to the Next Level
PDF
Mobile DevOps: Rapid Response to Feedback and continuous delivery in a mobile...
PPTX
Delivering Excellent Digital Quality to Your Customers
PPTX
Tackling Strategic Engineering Challenges
PPTX
DevOps: A Value Proposition
PDF
DevOps Beyond the Buzzwords: Culture, Tools, & Straight Talk
Opticon 2017 How Developers Can Take Experimentation
[Webinar] Innovate Faster by Adopting The Modern Growth Stack
Ahead of the Curve: How 23andMe Improved UX with Performance Edge
Evolving Experimentation from CRO to Product Development
[Webinar] How Vivid Seats Ensures Experimentation Success
SFScon21 - Paolo d’Incau - Going to production in a few months – How we did it!
ATAGTR2017 What Lies Beneath Robotics Process Automation
Streamlining Automation Scripts and Test Data Management
[Webinar] Visa's Journey to a Culture of Experimentation
Evolve or Die: Healthcare IT Testing | QASymphony Webinar
6 Strategies to Uncover Growth Opportunities for Your Business
Taking Your Product Development to the Next Level with Full Stack
Thinking Beyond HPQC ALM
Supercharging Optimizely Performance by Moving Decisions to the Edge
Take Your Experimentation Program to the Next Level
Mobile DevOps: Rapid Response to Feedback and continuous delivery in a mobile...
Delivering Excellent Digital Quality to Your Customers
Tackling Strategic Engineering Challenges
DevOps: A Value Proposition
DevOps Beyond the Buzzwords: Culture, Tools, & Straight Talk
Ad

Similar to Overcoming the Challenges of Experimentation on a Service Oriented Architecture (20)

PPTX
2018-10-25 Group RPA - AA Deck.pptx
PDF
Astin Profile
PPTX
Ideamart nsbm outreach 2015
PDF
Softjourn ticketing experience
PDF
For Engineers
PDF
Apidays Paris 2023 - How to use NoCode as a Microservice, Benjamin Buléon and...
PPT
Online Banking 2.0 webinar, October 28, 2010 by Jouk Pleiter
PDF
Future Of Work - GetLinks Service Introduction 2020
PPT
20091203 Presentatie Eurostar V02
PPTX
The Light Bulb Moment – Learning to-identify-robotic-automation-opportunities
PPSX
Globsync Technology IT & WEB Services
ODP
Actminds Outsourcing Summit 07
PDF
Deliver agile flow presentation (1)
PPTX
Cloud computing: Stan Freck
PDF
The Bigger Picture: New Opportunities for the Modern Enterprise
PDF
GovHuddle Case Study: Project Developed by Decipher Zone (Software Developmen...
PPT
Fédération d’identité : des concepts Théoriques aux études de cas d’implément...
PDF
DevOps as Digital Transformation
PPTX
Industrial Presentaion
2018-10-25 Group RPA - AA Deck.pptx
Astin Profile
Ideamart nsbm outreach 2015
Softjourn ticketing experience
For Engineers
Apidays Paris 2023 - How to use NoCode as a Microservice, Benjamin Buléon and...
Online Banking 2.0 webinar, October 28, 2010 by Jouk Pleiter
Future Of Work - GetLinks Service Introduction 2020
20091203 Presentatie Eurostar V02
The Light Bulb Moment – Learning to-identify-robotic-automation-opportunities
Globsync Technology IT & WEB Services
Actminds Outsourcing Summit 07
Deliver agile flow presentation (1)
Cloud computing: Stan Freck
The Bigger Picture: New Opportunities for the Modern Enterprise
GovHuddle Case Study: Project Developed by Decipher Zone (Software Developmen...
Fédération d’identité : des concepts Théoriques aux études de cas d’implément...
DevOps as Digital Transformation
Industrial Presentaion
Ad

More from Optimizely (20)

PDF
Clover Rings Up Digital Growth to Drive Experimentation
PPTX
Make Every Touchpoint Count: How to Drive Revenue in an Increasingly Online W...
PPTX
The Science of Getting Testing Right
PPTX
Autotrader Case Study: Migrating from Home-Grown Testing to Best-in-Class Too...
PPTX
Zillow + Optimizely: Building the Bridge to $20 Billion Revenue
PPTX
Empowering Agents to Provide Service from Anywhere: Contact Centers in the Ti...
PPTX
Experimentation Everywhere: Create Exceptional Online Shopping Experiences an...
PDF
Building an Experiment Pipeline for GitHub’s New Free Team Offering
PPTX
Making Your Hypothesis Work Harder to Inform Future Product Strategy
PPTX
Kick Your Assumptions: How Scholl's Test-Everything Culture Drives Revenue
PPTX
Experimentation through Clients' Eyes
PDF
The Future of Software Development
PPTX
Practical Use Case: How Dosh Uses Feature Experiments To Accelerate Mobile De...
PDF
Run High Impact Experimentation with High-quality Customer Discovery
PDF
Using Empathy to Build Custom Solutions at Scale
PPTX
How to find data insights that will drive a 10X impact
PPTX
Targeted Rollouts: How to Release Features to Multiple Audiences
PDF
Deploying Fearlessly in a Continuous World
PPTX
Detecting incorrectly implemented experiments
PDF
Move Fast in the Age of Uncertainty
Clover Rings Up Digital Growth to Drive Experimentation
Make Every Touchpoint Count: How to Drive Revenue in an Increasingly Online W...
The Science of Getting Testing Right
Autotrader Case Study: Migrating from Home-Grown Testing to Best-in-Class Too...
Zillow + Optimizely: Building the Bridge to $20 Billion Revenue
Empowering Agents to Provide Service from Anywhere: Contact Centers in the Ti...
Experimentation Everywhere: Create Exceptional Online Shopping Experiences an...
Building an Experiment Pipeline for GitHub’s New Free Team Offering
Making Your Hypothesis Work Harder to Inform Future Product Strategy
Kick Your Assumptions: How Scholl's Test-Everything Culture Drives Revenue
Experimentation through Clients' Eyes
The Future of Software Development
Practical Use Case: How Dosh Uses Feature Experiments To Accelerate Mobile De...
Run High Impact Experimentation with High-quality Customer Discovery
Using Empathy to Build Custom Solutions at Scale
How to find data insights that will drive a 10X impact
Targeted Rollouts: How to Release Features to Multiple Audiences
Deploying Fearlessly in a Continuous World
Detecting incorrectly implemented experiments
Move Fast in the Age of Uncertainty

Recently uploaded (20)

PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
Transform Your Business with a Software ERP System
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PPT
Introduction Database Management System for Course Database
PDF
AI in Product Development-omnex systems
PPTX
history of c programming in notes for students .pptx
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PPTX
Introduction to Artificial Intelligence
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PPTX
Online Work Permit System for Fast Permit Processing
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Understanding Forklifts - TECH EHS Solution
Operating system designcfffgfgggggggvggggggggg
Transform Your Business with a Software ERP System
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Introduction Database Management System for Course Database
AI in Product Development-omnex systems
history of c programming in notes for students .pptx
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
ManageIQ - Sprint 268 Review - Slide Deck
Introduction to Artificial Intelligence
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Online Work Permit System for Fast Permit Processing
How to Migrate SBCGlobal Email to Yahoo Easily
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Odoo POS Development Services by CandidRoot Solutions
Which alternative to Crystal Reports is best for small or large businesses.pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
How to Choose the Right IT Partner for Your Business in Malaysia
Upgrade and Innovation Strategies for SAP ERP Customers
Understanding Forklifts - TECH EHS Solution

Overcoming the Challenges of Experimentation on a Service Oriented Architecture

  • 1. Overcoming the Challenges of Experimentation on a Service Oriented Architecture Lupin Campos & Stephen Schwahn September 2020
  • 2. Hi! We are Lupin and Steph :) Lupin Campos Director of Product Growth Tech Startup Founder (Funnely) Software Development Company Founder (Leanbirds & Condiminds) Former Venture Partner @ 500Startups Steph Schwahn Growth Team Tech Lead Tech Startup Founder (Crescendo) Mobile App Development Company Founder (Plutonium Apps) Georgia Tech Alumni, graduated with high honors.
  • 3. So far: - 1 complete backend refactor - 2 frontend refactors - 36 Registration flow experiments (web + fullstack) - 40% Improvement on Registration Conversion Rate
  • 4. 1Let’s Get Into Context A quick note on who we are, what we do, and the challenges that we found in the way.
  • 5. This is our registration Process... Phone Number Role Verification Code Email & Password Child Info Personal Info Sync Bank Acc (Website)
  • 6. ….And here are the services behind it. A simplified version, you don’t want to see the entire thing. Trust us.
  • 7. 1Service Oriented Architectures with Optimizely (the wrong way)
  • 8. Greenlight Financial Technology, Inc. SOA with Optimizely Fullstack on Frontend Web App Marketing Site Mobile App Edge Service 1 Edge Service 2 Nested Service 1 Nested Service 2 Helper Service 1 Backend
  • 9. Greenlight Financial Technology, Inc. SOA with Optimizely Fullstack on Frontend Web App Marketing Site Mobile App Edge Service 1 Edge Service 2 Nested Service 1 Nested Service 2 Helper Service 1 Backend Variant: Variant 1 Variable: FlowId = 6
  • 10. Greenlight Financial Technology, Inc. SOA with Optimizely Fullstack Web App Marketing Site Mobile App Edge Service 1 Edge Service 2 Nested Service 1 Nested Service 2 Helper Service 1 Backend User_id: '1234_4321'
  • 11. Greenlight Financial Technology, Inc. SOA with Optimizely Fullstack Web App Marketing Site Mobile App Edge Service 1 Edge Service 2 Nested Service 1 Nested Service 2 Helper Service 1 Backend User_id: '1234_4321' 30s 40s 400s 200s 5s
  • 12. Greenlight Financial Technology, Inc. SOA with Optimizely Fullstack Web App Marketing Site Mobile App Edge Service 1 Edge Service 2 Nested Service 1 Nested Service 2 Helper Service 1 Backend User_id: '1234_4321' 30s 40s 400s 200s 5s
  • 13. 1Service Oriented Architectures with Optimizely (our way)
  • 14. Greenlight Financial Technology, Inc. Solution: SOA with Optimizely Agent Marketing Site Mobile App Edge Service 1 Edge Service 2 Nested Service 1 Nested Service 2 Helper Service 1 Backend Feature or Experiment Key: 'featureTest’ User_id: '1234_4321' Optimizely Agent 30s Web App
  • 15. Greenlight Financial Technology, Inc. In Practice…. Client 1 Client 2 Client n . . . Ambassador (API Gateway) Pod (3-30 running based on traffic) Optimizely Service (Node.js) Optimizely Agentlocalhost:8080 Datafile sync (every 30s) localhost:3000 Exposes Optimizely Service on service port 80 Service grpc:80 pod-ip:3000 NodeJS Container Go Container (sidecar) Datafile pod-ip:3000pod-ip:3000
  • 16. 1Let’s talk about “User ID” And how do we pass it everywhere!
  • 17. Greenlight Financial Technology, Inc. Used for bucketing MurmurHash(“user_1234”) Rollout to 60%
  • 18. Greenlight Financial Technology, Inc. Used for bucketing MurmurHash(“user_5678”) Rollout to 60%
  • 19. Greenlight Financial Technology, Inc. What if we don’t have the user id? MurmurHash(“steph@greenlight.me”) ? Rollout to 60%
  • 20. Greenlight Financial Technology, Inc. Introducing the Experimentation ID! MurmurHash(“exp_user_1234”) Rollout to 60%
  • 21. 1Introducing Experimentation-ID Service How we keep a consistent user id regardless of context
  • 22. Greenlight Financial Technology, Inc. Experimentation -ID service
  • 23. Greenlight Financial Technology, Inc. Optimizely Service orchestrates
  • 24. Greenlight Financial Technology, Inc. New API Contract! export type Context = UserIdContext | EmailContext | AnonymousIdContext | RegistrationIdContext | DeviceInfoContext export type EmailContext = { email: string } export type AnonymousIdContext = { anonymousId: string } export type DeviceInfoContext = { deviceOs: string, deviceToken: string } export type UserIdContext = { userId: string } export type RegistrationIdContext = { registrationId: string } export function isFeatureEnabled(featureKey: string, context: Context, attributes?: Attributes) export function getEnabledFeatures(context: Context, attributes?: Attributes) ...
  • 25. 1Truly Full Stack Experimentation Through the ENTIRE user journey, from the marketing landing page, through registration services, and all the way to fundamental service primitives