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
The goal of this issue is to discuss the design of a high-level framework API consumed by the developer using this library.
As I've been thinking about the framework architecture I see it consisting of the following parts/areas:
Core Functionality
Pluggable Protocols
Pluggable Storage
Core Functionality
providing crypto services: packing/unpacking messages, signing and verifying signatures, generating and storing keys
dispatching inbound messages, responding and sending outbound messages via a specified transport layer
emit events about protocol state changes (EventEmitter, Observable, ...) or any other mechanism allowing to react on state updates (aca-py emits event about every protocol state change), but developer should not be enforced to use events listener in her app
The goal of this issue is to discuss the design of a high-level framework API consumed by the developer using this library.
As I've been thinking about the framework architecture I see it consisting of the following parts/areas:
Core Functionality
acceptInvitation
,provision
,downloadMessages
,sendMessageToConnection
, creating credential, ...)Plugable Protocols
The idea is to be able to add/remove protocols which developer want to use without changing the core framework part (open-close principle)
...
Plugable Storage
...
API
Framework functionality should be provided via an instance of
Agent
class:When a developer creates such instance, then she can access modules. Modules works like facade around similar features of the framework:
A module can also provide an event emitter:
Other parts of the framework should be hidden and ideally not possible to export and use outside.
NOTE: This description is still in progress, I'll put some updates soon.
The text was updated successfully, but these errors were encountered: