class CassandraJobStore implements JobStore {

    @Override
    public Observable<Job<?>> retrieveArchivedJob(String jobId) {
        Observable<Job> action = retrieveEntityById(jobId, Job.class, retrieveArchivedJobStatement)
                .switchIfEmpty(retrieveEntityById(jobId, Job.class, retrieveActiveJobStatement)
                        .filter(job -> job.getStatus().getState() == JobState.Finished)
                )
                .switchIfEmpty(Observable.error(JobStoreException.jobDoesNotExist(jobId)));
        return (Observable) action;
    }

    @Inject public  CassandraJobStore(CassandraStoreConfiguration configuration,
                             Session session,
                             TitusRuntime titusRuntime);
      CassandraJobStore(CassandraStoreConfiguration configuration,
                      Session session,
                      TitusRuntime titusRuntime,
                      ObjectMapper mapper,
                      int initialBucketCount,
                      int maxBucketSize);

}