--- Cache cache entites (2 methods) marked @Cacheable cache entites in txn context cache results when .cache() chained before .{a}sync() call, return a EvictableCacheItem that has an .evict() method fix txn .andThen() chains primitive types have default values, (e.g. boolean, int, ...) but primative wrapper classes do not and can be null (e.g. Boolean, Integer, ...) create table wal { id timeuuid, follows timeuuid, read > write > primary key (id, follows) } begin: - insert into wal (timeuuid, parent timeuuid, // NOTE: Update operations have no meaning when they only contain primary key components, so // given that `properties` is ordered with the keys first if we find that the last element // is either a partition key or clustering column then we know we should just skip this operation. ColumnType ct = ((HelenusProperty) properties.toArray()[properties.size() - 1]).getColumnType(); if (ct != ColumnType.PARTITION_KEY && ct != ColumnType.CLUSTERING_COLUMN) { return; } public Stream sync() { ListenableFuture> future = async(); Futures.addCallback(future, new FutureCallback() { @Override public void onSuccess(String contents) { //...process web site contents } @Override public void onFailure(Throwable throwable) { log.error("Exception in task", throwable); } }); }