{"action":"created","issue":{"url":"https://api.github.com/repos/wix/accord/issues/53","labels_url":"https://api.github.com/repos/wix/accord/issues/53/labels{/name}","comments_url":"https://api.github.com/repos/wix/accord/issues/53/comments","events_url":"https://api.github.com/repos/wix/accord/issues/53/events","html_url":"https://github.com/wix/accord/issues/53","id":111205551,"number":53,"title":"Support async operations (Future)","user":{"login":"AmirKarimi","id":2813838,"avatar_url":"https://avatars.githubusercontent.com/u/2813838?v=3","gravatar_id":"","url":"https://api.github.com/users/AmirKarimi","html_url":"https://github.com/AmirKarimi","followers_url":"https://api.github.com/users/AmirKarimi/followers","following_url":"https://api.github.com/users/AmirKarimi/following{/other_user}","gists_url":"https://api.github.com/users/AmirKarimi/gists{/gist_id}","starred_url":"https://api.github.com/users/AmirKarimi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AmirKarimi/subscriptions","organizations_url":"https://api.github.com/users/AmirKarimi/orgs","repos_url":"https://api.github.com/users/AmirKarimi/repos","events_url":"https://api.github.com/users/AmirKarimi/events{/privacy}","received_events_url":"https://api.github.com/users/AmirKarimi/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-10-13T15:30:26Z","updated_at":"2015-10-13T16:03:37Z","closed_at":null,"body":"For example we need to check if some fields are available/valid in database. As our data-access library is async, is there any way to build a custom async validation rule?"},"comment":{"url":"https://api.github.com/repos/wix/accord/issues/comments/147760584","html_url":"https://github.com/wix/accord/issues/53#issuecomment-147760584","issue_url":"https://api.github.com/repos/wix/accord/issues/53","id":147760584,"user":{"login":"holograph","id":1114848,"avatar_url":"https://avatars.githubusercontent.com/u/1114848?v=3","gravatar_id":"","url":"https://api.github.com/users/holograph","html_url":"https://github.com/holograph","followers_url":"https://api.github.com/users/holograph/followers","following_url":"https://api.github.com/users/holograph/following{/other_user}","gists_url":"https://api.github.com/users/holograph/gists{/gist_id}","starred_url":"https://api.github.com/users/holograph/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/holograph/subscriptions","organizations_url":"https://api.github.com/users/holograph/orgs","repos_url":"https://api.github.com/users/holograph/repos","events_url":"https://api.github.com/users/holograph/events{/privacy}","received_events_url":"https://api.github.com/users/holograph/received_events","type":"User","site_admin":false},"created_at":"2015-10-13T16:03:36Z","updated_at":"2015-10-13T16:03:36Z","body":"That has pretty massive ramifications on the base API. For example, would a validation of a `City` return `Result` or `Future[Result]`? Would the combinator library as well as the DSL have to be extended to support e.g. `And(f1, f2, ... fn)` where `f`s are futures? Should it be split down the middle into \"blocking\" and \"nonblocking\" variants?\r\n\r\nI would argue that validations are designed to be stateless, and certainly not depend on external (certainly over-the-wire) systems."}}