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.