func NewNode(fileSystem fsys.FileSystem) *Node {
	return &Node{
		node:        node.New(fileSystem),
		transaction: transactionShim{},
		builder:     NewNodeTx,
	}
}
NewNode creates a new Node object.
package db
import (
	"github.com/pkg/errors"
	"github.com/spoke-d/thermionic/internal/db/database"
	"github.com/spoke-d/thermionic/internal/db/node"
	"github.com/spoke-d/thermionic/internal/db/schema"
	"github.com/spoke-d/thermionic/internal/fsys"
)
type NodeTransactioner interface {
	Transaction(f func(*NodeTx) error) error
}
type NodeOpener interface {
	Open(string, func(*Node) error) error
}
const ClusterDefaultOfflineThreshold = 30
const DiscoveryDefaultOfflineThreshold = 120
type QueryNode interface {
	Open(string) error
	EnsureSchema(hookFn schema.Hook) (int, error)
	DB() database.DB
}
type nodeTxBuilder func(database.Tx) *NodeTx
type Node struct {
	transaction Transaction  
	node        QueryNode
	dir         string  
	builder     nodeTxBuilder
}