anchor.diff:      Res = add_batch(Existing, OrgName),
       {Res, Missing}.
   
  +-spec add_batch(
  +        Batch :: list(),
  +        OrgName :: binary()) -> ok | {error , list()}.
   add_batch(Batch, OrgName) ->
       case oc_chef_object_db:add_batch_to_solr(Batch) of
           ok -> ok;
  
positive.code: 
  %% @doc Determine the proper key to use to retrieve the unique name of
  %% an object from its EJson representation.
  name_key(data_bag_item) -> <<"id">>;
  name_key(_Type)         -> <<"name">>.
  
  
negative.code:     lager:error("reindexing[~s] item ~s[~s] failed to reindex: ~s", [OrgName, TypeName, Id, Reason]),
      log_failures(OrgName, Rest).
  
  -spec humanize_failures(list(), list()) -> list().
  humanize_failures([], Acc) ->
      Acc;
  humanize_failures([H|T], Acc) ->
      case H of
          {Id, Reason} -> humanize_failures(T, [{Id, pretty_reason(Reason)} | Acc]);
          Error -> humanize_failures(T, [{<<"unknown">>, pretty_reason(Error)} | Acc])
      end.
  
  pretty_reason({error,{error,no_members}}) ->
      "no_members: Ran out of HTTP workers talking to search backend";
  pretty_reason(Other) ->
      io_lib:format("error: ~p", [Other]).
  
  - spec stub_records_for_indexing(
          SerializedObjects :: [binary()] | [ej:json_object()],
          NameKey :: binary(),
          NameIdDict :: dict(),
          Index :: index(),
          OrgId :: object_id()) -> {list(), list()}.
  stub_records_for_indexing(SerializedObjects, NameKey, NameIdDict, Index, OrgId) ->
      stub_records_for_indexing(SerializedObjects, NameKey, NameIdDict, Index, OrgId, [], []).
  
  