class ThingPersistenceActor extends AbstractShardedPersistenceActor<Command, Thing, ThingId, ThingId, ThingEvent> {

    public static Props props(final ThingId thingId, final DistributedPub<ThingEvent> distributedPub,
            final SnapshotAdapter<Thing> snapshotAdapter) {

        return Props.create(ThingPersistenceActor.class, thingId, distributedPub, snapshotAdapter);
    }

    @SuppressWarnings("unused") private  ThingPersistenceActor(final ThingId thingId, final DistributedPub<ThingEvent> distributedPub,
            final SnapshotAdapter<Thing> snapshotAdapter);

}