Building an experience framework

Pinterest Engineering
7 min readintermediate
--
View Original

Overview

The article discusses the development of the Experience Framework at Pinterest, aimed at enhancing user experience for over 175 million monthly active users by managing various in-product experiences. It outlines the challenges faced, system goals, architecture, and lessons learned during the implementation of this framework.

What You'll Learn

1

How to implement a centralized system for managing product experiences

2

Why modularizing code is essential for supporting multiple product teams

3

How to utilize RESTful APIs for client-server communication in a framework

Prerequisites & Requirements

  • Understanding of user experience design principles
  • Familiarity with RESTful APIs and JSON configurations(optional)

Key Questions Answered

What are the main challenges faced when delivering multiple user experiences?
The main challenges include preventing UI conflicts, avoiding spammy user experiences, and the time-consuming nature of building experiences. It's crucial to manage how experiences are shown to users to maintain a seamless interface.
How does the Experience Framework manage product experiences?
The Experience Framework centralizes product experience configurations, manages conflicts, and schedules experiences using JSON configurations. It ensures a consistent user experience across platforms by using a unified client library.
What technologies are used in the Experience Framework's architecture?
The Experience Framework utilizes RESTful APIs for communication, HBase for data storage, and MySQL for storing draft configurations. It also incorporates a web tool for developers to edit experience configurations.
What lessons were learned during the implementation of the Experience Framework?
Key lessons include the importance of modularizing code, ensuring system visibility, and implementing safeguards to prevent issues caused by poorly designed client code. These practices help maintain the framework's stability and performance.

Key Statistics & Figures

Daily requests to Experience Framework
1.5B
This highlights the scale at which the framework operates, managing over 300 experiences from various engineering teams.
Monthly active users on Pinterest
175 million
This figure underscores the importance of delivering a seamless user experience to a large audience.

Technologies & Tools

Some links below are affiliate links. We may earn a commission if you make a purchase.

Database
Hbase
Used for scalable data storage to support the massive traffic and dynamic schema requirements.
Database
Mysql
Utilized for storing draft configurations before they are published to production.
Backend
Restful Apis
Facilitates communication between clients and the Experience Framework.
Message Broker
Kafka
Used for logging requests and user actions to analyze experience performance.

Key Actionable Insights

1
Implement a centralized configuration management system to streamline user experience delivery across multiple teams.
This approach reduces redundancy and ensures consistency, allowing teams to focus on developing unique features without conflicting with others.
2
Utilize RESTful APIs to facilitate communication between clients and the Experience Framework.
This enables a more flexible and scalable architecture, allowing for easier updates and maintenance of user experiences.
3
Focus on modularizing code to support various product teams effectively.
By decoupling components, teams can implement new features without extensive restructuring, enhancing overall productivity.

Common Pitfalls

1
Failing to modularize code can lead to complications when supporting multiple product teams.
Without modularization, adding new features may require significant restructuring, which can slow down development and lead to bugs.
2
Neglecting system visibility can hinder troubleshooting during incidents.
A lack of monitoring can make it difficult to identify issues quickly, emphasizing the need for comprehensive alerting and monitoring systems.

Related Concepts

User Experience Design
Restful API Architecture
Scalable Data Storage Solutions