Understanding Client Extensions

Organizations often need to build custom solutions and user interfaces to meet unique business goals. However, traditional extension methods like OSGi plugins create a challenge for developers: balancing the need for customization with the potential impact on performance, scalability, and maintainability. Because these traditional plugins run within the same JVM as Liferay DXP, they can compete for limited resources and complicate platform upgrades. To solve this challenge, Liferay provides client extensions. This framework offers a more robust and sustainable approach to extending the platform without sacrificing performance or scalability

In this lesson, you'll explore the fundamentals of client extensions.

What are Client Extensions?

Client extensions are decoupled applications, configurations, and resources that operate independently of the Liferay DXP core. Instead of modifying the core directly, they integrate with the platform through standard APIs and defined extension points. This decoupled architecture offers several advantages over traditional extension methods, including improved performance, enhanced scalability, and reduced maintenance overhead.

  • Improved Performance: By running outside the Liferay JVM, client extensions reduce resource competition and enhance application performance.
  • Enhanced Scalability: Client extensions improve scalability by allowing you to fine-tune resource consumption and distribute workloads effectively.
  • Reduced Maintenance: This decoupling minimizes maintenance overhead and reduces the risk of conflicts or breaking changes during platform upgrades.

Client extensions offer several advantages over traditional extension methods.

Client extensions that communicate with Liferay DXP via REST APIs follow the OpenAPI specification. This ensures seamless integration and interoperability between your extensions and the platform. By adhering to the OpenAPI specification, these APIs provide consistent and well-defined interfaces for accessing and manipulating data, triggering actions, building user interfaces, and managing various aspects of your Liferay DXP instance. Additionally, by leveraging APIs, client extensions support all Liferay deployment options, including Liferay SaaS.

For this decoupled architecture, security is paramount. Liferay secures all client extension API communications with OAuth 2.0 by default, ensuring that interactions between external client extensions and the platform are protected. This robust security framework safeguards your data and ensures that your extensions operate within a trusted environment.

Accelerating Development with Liferay Marketplace

Beyond building custom extensions from scratch, organizations can accelerate development by leveraging the Liferay Marketplace. The Marketplace serves as a comprehensive hub for ready-to-use solutions, including cloud apps, client extensions, page fragments, low-code configurations, and composite apps. This significantly reduces development time and effort.

Marketplace fragments are accessible directly from the Page Editor. You can browse, preview, and install fragment sets without leaving the design environment. Once installed, these assets are clearly marked as Marketplace components within the Liferay UI and (in some cases) cannot be modified. Additionally, you can find client extensions on the Liferay Marketplace website, which provides specific installation and usage instructions on the details page for each extension.

If a development team creates a unique solution, they can share it with the Liferay community by becoming a publisher. The publishing process follows a structured 9-step flow to ensure that every app meets Liferay's standards before being approved and published to the global catalog. See Publishing Apps in Marketplace for more information.

Classification of Client Extensions

Liferay provides multiple types of client extensions to address different business needs and use cases. They're categorized as follows:

  • Frontend: Provide design resources or custom web components. These extensions enable you to modify your site's look and feel or register external applications as page widgets.
  • Microservice: Execute business logic from external applications in response to events in your Liferay instance. Examples include custom workflow actions, notifications, object actions, and validations.
  • Configuration: Modify platform behavior by injecting instance settings at runtime. This streamlines customization and enables flexible management of settings, such as using an OAuth user agent to authenticate other client extensions.
  • Batch: Import data entities into your Liferay instance using headless batch endpoints, such as object and workflow definitions.

Liferay provides multiple types of client extensions to address different business needs and use cases.

Understanding these categories empowers you to build powerful, custom solutions that integrate seamlessly with Liferay DXP.

Conclusion

Client extensions provide a secure, decoupled architecture that empowers you to extend Liferay DXP without compromising performance or scalability. With various types available, you can address a wide range of business needs, from UI modifications to complex backend integrations.

Next, you’ll explore each category of client extension in more detail.

loading-knowledge-label