Я Sembast использую обычно для локального хранилища, вокруг него обертка доступа в виде чистой функции которая берет на вход название репы + id/критерий и возвращает взятые данные. Для работы два сообщения, UpdateSomething и SetSomething. Первое сообщение запускает комманду которая вызывает функцию-обертку и отсылает второе сообщение с результатом, второе этот результат ставит в модель :)