title: Why does the validation fail (ExceptionInfo Value does not match schema) for a prismatic schema using onyx?
body: <p>Can someone throw light on whats going on here ? I have double checked <a href="http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tools.DynamoDBLocal.html" rel="nofollow">dynamodb-local</a> behavior using a non-onyxian client and simple operations work using <a href="https://github.com/ptaoussanis/faraday" rel="nofollow">Faraday</a> . The code which I am trying to run is <a href="https://github.com/Yuppiechef/cqrs-server" rel="nofollow">here</a> and I have logged an issue <a href="https://github.com/Yuppiechef/cqrs-server/issues/8" rel="nofollow">here</a> but haven't got any response.</p>
  
  <p>Here is the output from the REPL:</p>
  
  <pre><code>$ lein repl
  WARNING: cat already refers to: #'clojure.core/cat in namespace: clj-uuid.bitmop, being replaced by: #'clojure.core.reducers/cat
  nREPL server started on port 44195 on host 127.0.0.1 - nrepl://127.0.0.1:44195
  REPL-y 0.3.7, nREPL 0.2.12
  Clojure 1.7.0
  Java HotSpot(TM) 64-Bit Server VM 1.8.0_25-b18
      Docs: (doc function-name-here)
            (find-doc "part-of-name-here")
    Source: (source function-name-here)
   Javadoc: (javadoc java-object-or-class-here)
      Exit: Control+D or (exit) or (quit)
   Results: Stored in vars *1, *2, *3, an exception in *e
  
  cqrs-server.core=&gt; (start)
  ExceptionInfo Value does not match schema: {:onyx/consumption missing-required-key, :onyx/batch-size missing-required-key, :onyx/medium missing-required-key}  schema.core/validate (core.clj:161)
  
  cqrs-server.core=&gt;
  </code></pre>
  
  <p>The full stacktrace using <code>*e</code> is below:-</p>
  
  <pre><code>cqrs-server.core=&gt; *e
  #error {
   :cause "Value does not match schema: {:onyx/consumption missing-required-key, :onyx/batch-size missing-
  required-key, :onyx/medium missing-required-key}"
   :data {:type :schema.core/error, :schema (conditional #object[onyx.validation$fn__16409 0x6ba7a7e4 "ony
  x.validation$fn__16409@6ba7a7e4"] {:onyx/name Keyword, :onyx/type (enum :output :function :input), :onyx
  /consumption (enum :concurrent :sequential), :onyx/batch-size (pred pos?), Keyword Any, :onyx/medium Key
  word} #object[clojure.core$constantly$fn__4383 0x5a6f89f1 "clojure.core$constantly$fn__4383@5a6f89f1"] {
  :onyx/name Keyword, :onyx/type (enum :output :function :input), :onyx/consumption (enum :concurrent :seq
  uential), :onyx/batch-size (pred pos?), Keyword Any, :onyx/fn Keyword}), :value {:onyx/name :event/aggre
  gate-out, :onyx/type :output}, :error {:onyx/consumption missing-required-key, :onyx/batch-size missing-
  required-key, :onyx/medium missing-required-key}}
   :via
   [{:type clojure.lang.ExceptionInfo
     :message "Value does not match schema: {:onyx/consumption missing-required-key, :onyx/batch-size miss
  ing-required-key, :onyx/medium missing-required-key}"
     :data {:type :schema.core/error, :schema (conditional #object[onyx.validation$fn__16409 0x6ba7a7e4 "o
  nyx.validation$fn__16409@6ba7a7e4"] {:onyx/name Keyword, :onyx/type (enum :output :function :input), :on
  yx/consumption (enum :concurrent :sequential), :onyx/batch-size (pred pos?), Keyword Any, :onyx/medium K
  eyword} #object[clojure.core$constantly$fn__4383 0x5a6f89f1 "clojure.core$constantly$fn__4383@5a6f89f1"]
   {:onyx/name Keyword, :onyx/type (enum :output :function :input), :onyx/consumption (enum :concurrent :s
  equential), :onyx/batch-size (pred pos?), Keyword Any, :onyx/fn Keyword}), :value {:onyx/name :event/agg
  regate-out, :onyx/type :output}, :error {:onyx/consumption missing-required-key, :onyx/batch-size missin
  g-required-key, :onyx/medium missing-required-key}}
     :at [schema.core$validate invoke "core.clj" 161]}]
   :trace
   [[schema.core$validate invoke "core.clj" 161]
    [onyx.validation$validate_catalog invoke "validation.clj" 48]
    [onyx.validation$validate_job invoke "validation.clj" 122]
    [onyx.api$submit_job invoke "api.clj" 90]
    [cqrs_server.core$start invoke "core.clj" 207]
    [cqrs_server.core$eval19231 invoke "form-init17061160983479843.clj" 1]
    [clojure.lang.Compiler eval "Compiler.java" 6782]
    [clojure.lang.Compiler eval "Compiler.java" 6745]
    [clojure.core$eval invoke "core.clj" 3081]
    [clojure.main$repl$read_eval_print__7099$fn__7102 invoke "main.clj" 240]
    [clojure.main$repl$read_eval_print__7099 invoke "main.clj" 240]
    [clojure.main$repl$fn__7108 invoke "main.clj" 258]
    [clojure.main$repl doInvoke "main.clj" 258]
    [clojure.lang.RestFn invoke "RestFn.java" 1523]
    [clojure.tools.nrepl.middleware.interruptible_eval$evaluate$fn__18624 invoke "interruptible_eval.clj"
  87]
    [clojure.lang.AFn applyToHelper "AFn.java" 152]
    [clojure.lang.AFn applyTo "AFn.java" 144]
    [clojure.core$apply invoke "core.clj" 630]
    [clojure.core$with_bindings_STAR_ doInvoke "core.clj" 1868]
    [clojure.lang.RestFn invoke "RestFn.java" 425]
    [clojure.tools.nrepl.middleware.interruptible_eval$evaluate invoke "interruptible_eval.clj" 85]
    [clojure.tools.nrepl.middleware.interruptible_eval$interruptible_eval$fn__18669$fn__18672 invoke "inte
  rruptible_eval.clj" 222]
    [clojure.tools.nrepl.middleware.interruptible_eval$run_next$fn__18664 invoke "interruptible_eval.clj"
  190]
    [clojure.lang.AFn run "AFn.java" 22]
    [java.util.concurrent.ThreadPoolExecutor runWorker "ThreadPoolExecutor.java" 1142]
    [java.util.concurrent.ThreadPoolExecutor$Worker run "ThreadPoolExecutor.java" 617]
    [java.lang.Thread run "Thread.java" 745]]}
  cqrs-server.core=&gt;
  cqrs-server.core=&gt;
  </code></pre>
  
  <p>The output from a Faraday client REPL (<code>my-ns</code> is a local namespace for testing) which will connect to the same dynamodb running locally is below:</p>
  
  <pre><code>my-ns=&gt; (far/list-tables client-opts)
  (:events)
  
  my-ns=&gt; (far/describe-table client-opts :events)
  {:lsindexes nil, :gsindexes [{:name :event-idx, :size 0, :item-count 0, :key-schema [{:name :type, :type :hash} {:name :date, :type :range}], :projection {:projection-type "ALL", :non-key-attributes nil}, :throughput {:read 1, :write 1, :last-decrease nil, :last-increase nil, :num-decreases-today nil}}], :name :events, :throughput {:read 1, :write 1, :last-decrease #inst "1970-01-01T00:00:00.000-00:00", :last-increase #inst "1970-01-01T00:00:00.000-00:00", :num-decreases-today 0}, :prim-keys {:id {:key-type :hash, :data-type :s}, :date {:key-type :range, :data-type :n}, :type {:data-type :s}}, :size 0, :status :active, :item-count 0, :creation-date #inst "2016-03-10T22:53:33.601-00:00", :indexes nil}
  my-ns=&gt;
  
  my-ns=&gt; (far/scan client-opts :events)
  []
  </code></pre>
  
  <p>I have created a public gist for <code>core.clj</code> <a href="https://gist.github.com/ZeroGraviti/60fd6ac5f6409926a350" rel="nofollow">here</a> and for <code>cqrs.clj</code> <a href="https://gist.github.com/ZeroGraviti/c5cf9f2697fb19248dcf" rel="nofollow">here</a> for review.
  My <code>project.clj</code> looks like <a href="https://gist.github.com/ZeroGraviti/a813c41bc965a6942f5d" rel="nofollow">this</a>.</p>
  
  <p>Can someone please help me fix this ? <br>
  TIA</p>