Extensibility model
API Only​
- 
Webhooks. You can subscribe to more than a hundred events to receive data from Saleor. 
- 
API extensions. Enable behavior customization, for example, calculating shipping costs based on the package dimensions. Learn more 
- 
Dashboard extensions. Extend admin functionality using any front-end stack embeddable into iframes. 
- 
Granular permission control. Granular permissions for access tokens. 
- 
GraphQL oriented. Provide GraphQL queries to shape the data provided via Webhooks. 
Why not plugin architecture?​
The plugin architecture is popular among open-source projects; classic examples would be Magento or Shopify. Such a model has direct coupling with the platform, which can be convenient to get started quickly but can also lead to many issues.
Benefits of decoupled architecture:
- 
Technology agnostic. Technology stack freedom allows you to pick the best tool for the job and access a larger talent pool. 
- 
Improved security. Tight coupling increases security risks whereas decoupled architectures reduce the attack surface. 
- 
Independent deployment. You can deploy your microservices independently. 
- 
Reliability. Less risk of degrading performance or bringing the whole system down. 
- 
Scalability. You can allocate resources more efficiently for your services. 
- 
Cross team collaboration. Decoupled architectures allow teams to collaborate more effectively compared to plugins that create dependencies between teams and projects. 
- 
Open Standards. Using GraphQL means tapping into a larger ecosystem of tools and communities as opposed to limited, proprietary SDKs. 
- 
Debugging. Decoupled architectures make distinguishing platform issues from those caused by your own application more straightforward.