Overview
The article discusses the rebuilding of LinkedIn's Profile Highlights System, focusing on the transition from a monolithic architecture to a microservices-based plug-in architecture. It highlights the motivations for this change, the new architectural design, and the performance improvements achieved.
What You'll Learn
1
How to implement a plug-in architecture for scalable systems
2
Why microservices improve extensibility and maintainability
3
How to optimize performance using caching strategies
Prerequisites & Requirements
- Understanding of microservices architecture
- Familiarity with RESTful services and asynchronous programming(optional)
Key Questions Answered
What were the main motivations for rebuilding the Profile Highlights System?
The main motivations included the need for fast experimentation, a distributed development model, and addressing the limitations of the old monolithic architecture that hindered extensibility and modularity. The old system required extensive knowledge to add new highlight types, which slowed down iteration speed and increased the likelihood of bugs.
What technologies were used in the new architecture of the Profile Highlights System?
The new architecture employs several technologies including Microservices architecture for scalability, Rest.li for building RESTful services, ParSeq for asynchronous programming in Java, and LoadingCache from Google Guava for caching. These technologies help manage the complexity and improve performance of the system.
How did the new architecture improve performance metrics?
The new architecture led to significant performance improvements, with p99, p95, p90, and p50 latencies improving by 29%, 18.6%, 17%, and 7% respectively. Additionally, the cost to serve was reduced by approximately 50%, showcasing the efficiency of the new design.
Key Statistics & Figures
p99 latency improvement
29%
This improvement reflects the efficiency gains from the new architecture.
Cost to serve reduction
approximately 50%
This reduction indicates significant savings from optimized service calls.
Technologies & Tools
Architecture
Microservices Architecture
Used to deliver member experiences and manage service interactions.
Backend
Rest.li
An open-source framework for building RESTful services.
Backend
Parseq
A library for writing asynchronous code in Java.
Caching
Loadingcache
A cache implementation that loads values when cache misses occur.
Key Actionable Insights
1Implementing a plug-in architecture can significantly enhance system scalability and maintainability.By allowing independent development of highlight types, teams can innovate faster without affecting the core system, which is crucial for dynamic environments like LinkedIn.
2Utilizing caching strategies like LoadingCache can drastically reduce service call costs and improve response times.This is particularly important in microservices where multiple services may need to be called for a single request, leading to potential bottlenecks.
3Adopting a microservices architecture facilitates better team autonomy and faster iterations.This allows different teams to own and develop their respective highlights independently, reducing dependencies and enhancing productivity.
Common Pitfalls
1
Assuming that a monolithic architecture can handle scaling without significant redesign.
Many systems face performance bottlenecks as they grow, necessitating a shift to microservices for better scalability and maintainability.
Related Concepts
Microservices Architecture
Restful Services
Asynchronous Programming
Caching Strategies