You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is a pion/webrtc v4 item. We'd like to use interfaces between pion modules as much as possible to provide users with true pluggability. To achieve this, we'd also need to introduce customizable factories.
Motivation
Pion WebRTC is comprised of many modules (a poly-repo solution) with pluggability in mind. This has allowed us to manage each WebRTC sub-components with independent versions. It is, however, not flexible enough to achieve intended pluggability because a module depends on another via direct struct pointers rather than via interfaces.
By converting struct pointer to an interface, we can achieve the following:
Testing a module much easier by mocking the dependencies
It allows us to dynamically swap multiple versions of a module on the fly (e.g. A/B testing in benching marking and/or in production environment)
It allows us to use custom implementation of a module along with stock pion modules.
Summary
This is a pion/webrtc v4 item. We'd like to use interfaces between pion modules as much as possible to provide users with true pluggability. To achieve this, we'd also need to introduce customizable factories.
Motivation
Pion WebRTC is comprised of many modules (a poly-repo solution) with pluggability in mind. This has allowed us to manage each WebRTC sub-components with independent versions. It is, however, not flexible enough to achieve intended pluggability because a module depends on another via direct struct pointers rather than via interfaces.
By converting struct pointer to an interface, we can achieve the following:
Proposal: New Interfaces and CustomFactories
Plan (high level)
*sctp.Assocation => sctp.Association
)The text was updated successfully, but these errors were encountered: