mirror of
https://github.com/sonr-io/sonr.git
synced 2026-08-03 18:01:39 +00:00
17 lines
562 B
Go
17 lines
562 B
Go
package router
|
|||
|
|
|
||
|
|
import (
|
||
|
|
"context"
|
||
|
|
|
||
|
|
"github.com/onsonr/sonr/pkg/core/transaction"
|
||
|
|
)
|
||
|
|
|
||
|
|
// Service is the interface that wraps the basic methods for a router.
|
||
|
|
// A router can be a query router or a message router.
|
||
|
|
type Service interface {
|
||
|
|
// CanInvoke returns an error if the given request cannot be invoked.
|
||
|
|
CanInvoke(ctx context.Context, typeURL string) error
|
||
|
|
// Invoke execute a message or query. The response should be type casted by the caller to the expected response.
|
||
|
|
Invoke(ctx context.Context, req transaction.Msg) (res transaction.Msg, err error)
|
||
|
|
}
|