<p dir="auto">I think this should be marked as feature request, but it's not as much a request as a curious question (and a scream of pain, yes). From now on I'm going to talk about neo4j-embedded API, not Cypher.</p>
<p dir="auto">Since most methods on most entities return Iterables or Iterators, further processing of the results turns into a fairly painful procedure. I don't know whether I'm one from just a few or there are a lot of people with the same problem, but if you could, please consider (if not replacing, at least providing along) some methods that return Streams. Wouldn't it be great if end-users could so something like this:<br>
<code class="notranslate">node.getRelationships(type, direction).map(mapper).collect(collector)</code>?</p>
<p dir="auto">IMHO, switching to Stream API might even turn out to be a good choice since there all kinds of facilities: lazy loading of huge amounts of data, short-circuiting on some operations and so on.</p>
<p dir="auto">Currently we are using helpers like the following across out neo4j projects:<br>
<code class="notranslate">StreamSupport.stream(iterable.spliterator(), false);</code><br>
It works, but introduces some amount of boilerplate and duplicated code and, what's more important, it's just a trivial wrapper. Knowing that Stream API provides a fair amount of additional <code class="notranslate">Characteristic</code>s for optimizing operations on streams, it seems to me that bringing this functionality to neo4j kernel would be more effective.</p>
<p dir="auto">P.S. By the way, let me thank you for being that close to community. Seeing as your developers kindly address issues here and on stackoverflow/google groups and closely communicating with user base is quite an inspiration, really.</p>
<p dir="auto">P.P.S. This it <em>totally</em> unrelated, but is there any possibility of introducing a typed <code class="notranslate">getProperty()</code> method that could infer it's return type? Now we have just this:<code class="notranslate">String s = (String)node.getProperty("key")</code>, but it would be (again, not that important, but probably just nice) <code class="notranslate">String s = node.getProperty("key")</code> or (dummy example) <code class="notranslate">System.out.println(node.&lt;String&gt;getProperty(someKey))</code>. Here's an excerpt from the code we use for this:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="public &lt;T&gt; T getProperty(final String key, final T deflt) {
    Objects.requireNonNull(key);
    return (T)node.getProperty(key, deflt);
}"><pre class="notranslate"><code class="notranslate">public &lt;T&gt; T getProperty(final String key, final T deflt) {
    Objects.requireNonNull(key);
    return (T)node.getProperty(key, deflt);
}
</code></pre></div>
<p dir="auto">when our neo4j backup runs daily, it seems to be generating inconsistency checker report files in the /root folder filling up space</p>
<p dir="auto"><strong>Neo4j Version:</strong>  3.5.7<br>
<strong>Operating System:</strong> Ubuntu 18.04.2 LTS</p>
<h3 dir="auto">Steps to reproduce</h3>
<ol dir="auto">
<li>Install neo4j 3.5.7</li>
<li>Take backups nightly until problems arise</li>
</ol>
<h3 dir="auto">Expected behavior</h3>
<p dir="auto">Backups should work, consistency checker should not be getting NullPointerExceptions</p>
<h3 dir="auto">Actual behavior</h3>
<p dir="auto">/root/ filling up with these NullPointerExceptions<br>
Example:<br>
<code class="notranslate">ERROR: Failed to check record: java.lang.NullPointerException at org.neo4j.consistency.checking.full.PropertyReader.propertyValue(PropertyReader.java:107) at org.neo4j.consistency.checking.full.PropertyAndNodeIndexedCheck.getPropertyValues(PropertyAndNodeIndexedCheck.java:217) at org.neo4j.consistency.checking.full.PropertyAndNodeIndexedCheck.matchIndexesToNode(PropertyAndNodeIndexedCheck.java:117) at org.neo4j.consistency.checking.full.PropertyAndNodeIndexedCheck.check(PropertyAndNodeIndexedCheck.java:83) at org.neo4j.consistency.checking.full.PropertyAndNodeIndexedCheck.check(PropertyAndNodeIndexedCheck.java:59) at org.neo4j.consistency.report.ConsistencyReporter.dispatch(ConsistencyReporter.java:116) at org.neo4j.consistency.report.ConsistencyReporter.forNode(ConsistencyReporter.java:384) at org.neo4j.consistency.checking.full.PropertyAndNode2LabelIndexProcessor.process(PropertyAndNode2LabelIndexProcessor.java:63) at org.neo4j.consistency.checking.full.PropertyAndNode2LabelIndexProcessor.process(PropertyAndNode2LabelIndexProcessor.java:39) at org.neo4j.consistency.checking.full.RecordCheckWorker.run(RecordCheckWorker.java:77) at</code></p>
<p dir="auto">Note that prior to some date, around Nov 19, we are seeing much smaller "inconsistency" report files containing details such as <code class="notranslate">Node[6042535,used=true,rel=-1,prop=13355857,labels=Inline(0x1000000002:[2]),light,secondaryUnitId=-1] ERROR: The property chain contains multiple properties that have the same property key id, which means that the entity has at least one duplicate property.</code> and at around Nov 19 the NullPointerException appears which causes growth in file sizes on the disk<br>
Not aware of any process that may have changed</p>