* Logging of toString of unknown classes should be avoided, since it could be huge
* Logging for EventSourcedBehaviorImpl includes the PersistentRepr,
for example:
```
Received Journal response: WriteMessageSuccess(PersistentImpl(Confirmed(2,q1,1583924066958),6,pid-6),,false,null,831cd256-9bc5-40e3-b84c-4a2d34dde643,0),9)
```
Different approach than in classic AtLeastOnceDelivery because I would like:
* support flow control, with a work pulling approach
* be possible to use with or without persistence (without it may loose
messages if producer node crashes)
* detect lost messages on the consumer side and let that drive resends,
instead of aggressively resending from producer side
* deliver messages in order and deduplicate resent messages
* have an efficient protocol for acknowledgments over the network (not ack each message),
but still have a simple one-by-one protocol for the end user
* support 3 use cases (building blocks)
* point-to-point
* work pulling
* sharding
* optional durable queue, with one event sourced implementation
* protobuf serialization
* ApiMayChange
* reference docs and examples
* api docs
* doc example code missing so far
* deprecate internal sameThread ec and use a new one for all internal use sites
* Use the respective Scala version standard library "same thread" ec
* fallback to the old inline impl on 2.12 when reflection isn't possible
* First stab at distributed pubsub for typed
* Also allow sending to a single subscriber across the topic
* Revert "Also allow sending to a single subscriber across the topic"
This reverts commit 4fd4f0b75c0dda01706dcde70645dcfa09da889b.
* Serializer and basic multi-jvm test
* docs
* Review feedback
* This reads better
* One brace too many
* sample formatting/headers/yadi
* Hide actual messages to ease bincomp evolution
* More tesssssts
* And even moar tessssssssts
* Review feedback addressed
* Same serialization as typed sharding
Mention turnaround in docs
Leases are always stored as a ScalaLease and the Java LeaseProvider
unwraps the adapter.
It is important that the same lease can be used from java and scala for
mixed langugae code bases.