Apachecon cassandra transport
description
Transcript of Apachecon cassandra transport
![Page 1: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/1.jpg)
Apache Cassandra
Clients and Transports
Thursday, February 28, 13
![Page 2: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/2.jpg)
Hi Folks!I’m Nate @zznate
Thursday, February 28, 13
![Page 3: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/3.jpg)
API ManagementAPI AnalyticsAPI Tools
Thursday, February 28, 13
![Page 4: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/4.jpg)
Clients and transportsfor Cassandra
Thursday, February 28, 13
![Page 5: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/5.jpg)
But first... some questions
Thursday, February 28, 13
![Page 6: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/6.jpg)
But first: Architectural stuff
Thursday, February 28, 13
![Page 7: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/7.jpg)
Cassandra:“Sparsely Columnar”
Thursday, February 28, 13
![Page 8: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/8.jpg)
An RDBMS table
Thursday, February 28, 13
![Page 9: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/9.jpg)
An RDBMS table
Thursday, February 28, 13
![Page 10: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/10.jpg)
Cassandra Style
Thursday, February 28, 13
![Page 11: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/11.jpg)
Cassandra Style
Thursday, February 28, 13
![Page 12: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/12.jpg)
Cassandra data modelling
Thursday, February 28, 13
![Page 13: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/13.jpg)
Four common patternsSimple object to simple rowSparse object to rowsMaterialized viewManual index
Thursday, February 28, 13
![Page 14: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/14.jpg)
simple objects to simple row
Thursday, February 28, 13
![Page 15: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/15.jpg)
“static” column family
Thursday, February 28, 13
![Page 16: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/16.jpg)
Sparse Objects
Thursday, February 28, 13
![Page 17: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/17.jpg)
“dynamic” column family
Thursday, February 28, 13
![Page 18: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/18.jpg)
Materialized Views
Thursday, February 28, 13
![Page 19: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/19.jpg)
Materialized view
Thursday, February 28, 13
![Page 20: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/20.jpg)
Regardless of the approached used, there are four overall goals
Thursday, February 28, 13
![Page 21: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/21.jpg)
1. Denormalize2. Eliminate seeks3. Design for read4. Optimiza for blind writes
Thursday, February 28, 13
![Page 22: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/22.jpg)
Now... let’s talk about protocols
Thursday, February 28, 13
![Page 23: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/23.jpg)
Thrift
Thursday, February 28, 13
![Page 24: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/24.jpg)
ThriftRPC-Based
Thursday, February 28, 13
![Page 25: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/25.jpg)
ThriftRPC-BasedMature Apache Project
Thursday, February 28, 13
![Page 26: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/26.jpg)
ThriftRPC-BasedMature Apache ProjectSupports lots of languages
Thursday, February 28, 13
![Page 27: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/27.jpg)
ThriftRPC-BasedMature Apache ProjectSupports lots of languagesExtensible!
Thursday, February 28, 13
![Page 28: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/28.jpg)
CQL
Thursday, February 28, 13
![Page 29: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/29.jpg)
CQLWell defined protocol
Thursday, February 28, 13
![Page 30: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/30.jpg)
CQLWell defined protocolSupports Compression
Thursday, February 28, 13
![Page 31: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/31.jpg)
CQLWell defined protocolSupports CompressionNetty/NIO-based
Thursday, February 28, 13
![Page 32: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/32.jpg)
Storage Mechanics(but quickly)
Thursday, February 28, 13
![Page 33: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/33.jpg)
get_slice
Workhorse of Cassandra selection methods
Thursday, February 28, 13
![Page 34: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/34.jpg)
get_slice: key
The row key
Thursday, February 28, 13
![Page 35: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/35.jpg)
get_slice: ColumnParent
The column family (a.k.a table)
Thursday, February 28, 13
![Page 36: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/36.jpg)
get_slice: SlicePredicate
defines the column range, or specifically named columns
Thursday, February 28, 13
![Page 37: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/37.jpg)
get_slice:ConsistencyLevel
The level of consistency we want for this read
Thursday, February 28, 13
![Page 38: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/38.jpg)
Obtuse at first glance, but nothing is hidden
Thursday, February 28, 13
![Page 39: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/39.jpg)
So...
Thursday, February 28, 13
![Page 40: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/40.jpg)
But one person’s abstraction leakage is another’s preffered model
Thursday, February 28, 13
![Page 41: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/41.jpg)
How closely do you want to interact with the underlying storage engine?
Thursday, February 28, 13
![Page 42: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/42.jpg)
Client APIs
Thursday, February 28, 13
![Page 43: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/43.jpg)
Benefits of thrift
Thursday, February 28, 13
![Page 44: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/44.jpg)
Benefits of thriftMature selection of clients
Thursday, February 28, 13
![Page 45: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/45.jpg)
Benefits of thriftMature selection of clientsMultiple languages
Thursday, February 28, 13
![Page 46: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/46.jpg)
Benefits of thriftMature selection of clientsMultiple languagesWell documented
Thursday, February 28, 13
![Page 47: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/47.jpg)
Benefits of thriftMature selection of clientsMultiple languagesWell documentedCan be used in other places
Thursday, February 28, 13
![Page 48: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/48.jpg)
Drawbacks of thrift
Thursday, February 28, 13
![Page 49: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/49.jpg)
Drawbacks of thriftSeveral objects are required for any request
Thursday, February 28, 13
![Page 50: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/50.jpg)
Drawbacks of thriftSeveral objects are required for any requestClients differs in implementation
Thursday, February 28, 13
![Page 51: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/51.jpg)
Drawbacks of thriftSeveral objects are required for any requestClients differs in implementationUpstream dependency issues
Thursday, February 28, 13
![Page 52: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/52.jpg)
Drawbacks of thriftSeveral objects are required for any requestClients differs in implementationUpstream dependency issuesSchema changes and cluster health done pro-actively
Thursday, February 28, 13
![Page 53: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/53.jpg)
Benefits of cql api
Thursday, February 28, 13
![Page 54: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/54.jpg)
Benefits of cql apiStored procedures
Thursday, February 28, 13
![Page 55: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/55.jpg)
Benefits of cql apiStored proceduresCommon operations are straight forward
Thursday, February 28, 13
![Page 56: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/56.jpg)
Benefits of cql apiStored proceduresCommon operations are straight forward Cluster health and schema change push-back
Thursday, February 28, 13
![Page 57: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/57.jpg)
Benefits of cql apiStored proceduresCommon operations are straight forward Cluster health and schema change push-backAwesome client available
Thursday, February 28, 13
![Page 58: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/58.jpg)
Drawbacks of CQL apis
Thursday, February 28, 13
![Page 59: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/59.jpg)
Drawbacks of CQL apisStill have idiomatic clients
Thursday, February 28, 13
![Page 60: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/60.jpg)
Drawbacks of CQL apisStill have idiomatic clientsStill a binary protocol
Thursday, February 28, 13
![Page 61: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/61.jpg)
Drawbacks of CQL apisStill have idiomatic clientsStill a binary protocolDefault storage model emposes substantial restrictions** see gotchas section later
Thursday, February 28, 13
![Page 62: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/62.jpg)
Considerations for your app
Thursday, February 28, 13
![Page 63: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/63.jpg)
Stick with Thrift if...
Thursday, February 28, 13
![Page 64: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/64.jpg)
Heavy update workloads
Thursday, February 28, 13
![Page 65: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/65.jpg)
Large, dynamic batch insertions
Thursday, February 28, 13
![Page 66: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/66.jpg)
Hadoop integration(CASSANDRA-4421)
Thursday, February 28, 13
![Page 67: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/67.jpg)
Commonly deal with very wide rows(CASSANDRA-4176)
Thursday, February 28, 13
![Page 68: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/68.jpg)
CASSANDRA-4176:“Pick your shard keys carefully”
Thursday, February 28, 13
![Page 69: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/69.jpg)
Thursday, February 28, 13
![Page 70: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/70.jpg)
Consider CQL if...
Thursday, February 28, 13
![Page 71: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/71.jpg)
Static column family model:Take advantage of stored procedures for common reads
Thursday, February 28, 13
![Page 72: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/72.jpg)
Despite the shard key jab, CQL makes good use of the storage model
Thursday, February 28, 13
![Page 73: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/73.jpg)
You can replace some custom serialization with collections
Thursday, February 28, 13
![Page 74: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/74.jpg)
Integration with JDBC and/or BI tools
Thursday, February 28, 13
![Page 75: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/75.jpg)
Wire efficient:Does not return timestamp or TTL by default
Thursday, February 28, 13
![Page 76: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/76.jpg)
Larger, potentially more transient evironments
Thursday, February 28, 13
![Page 77: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/77.jpg)
But CQL is - new- an abstraction
Thursday, February 28, 13
![Page 78: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/78.jpg)
In some cases, CQL might not do what you think
Thursday, February 28, 13
![Page 79: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/79.jpg)
Most common CQL pitfalls
Thursday, February 28, 13
![Page 80: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/80.jpg)
Collections can only be retrieved in their entirety
Thursday, February 28, 13
![Page 81: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/81.jpg)
Can’t mix static and dynamic data in a column family
Thursday, February 28, 13
![Page 82: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/82.jpg)
“keys only” range slices don’t work(CASSANDRA-4536)
Thursday, February 28, 13
![Page 83: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/83.jpg)
Range ghosts will not be returned
Thursday, February 28, 13
![Page 84: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/84.jpg)
Batch inserts are clunky(CASSANDRA-4693)
Thursday, February 28, 13
![Page 85: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/85.jpg)
With non-compact storage the whole row must be read every time.
Thursday, February 28, 13
![Page 86: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/86.jpg)
The take away is that you have options. Particularly good ones for Java.
Thursday, February 28, 13
![Page 87: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/87.jpg)
Thursday, February 28, 13
![Page 88: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/88.jpg)
BUT
Thursday, February 28, 13
![Page 89: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/89.jpg)
there is a larger, more fundamental problem to discuss
Thursday, February 28, 13
![Page 90: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/90.jpg)
“If [they] think that CQL is the answer to usability then I just won. We at least know where our problems are.”- 10gen exec.
Thursday, February 28, 13
![Page 91: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/91.jpg)
The market has spoken and we missed the boat.
Thursday, February 28, 13
![Page 92: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/92.jpg)
POST /endpoint {json}
Thursday, February 28, 13
![Page 93: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/93.jpg)
A Cassandra-MVP actually maintains a REST front-end
Thursday, February 28, 13
![Page 94: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/94.jpg)
So we’ve taken this and gone further
Thursday, February 28, 13
![Page 95: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/95.jpg)
What if...
Thursday, February 28, 13
![Page 96: Apachecon cassandra transport](https://reader033.fdocuments.us/reader033/viewer/2022051313/54b39e1a4a7959124d8b4573/html5/thumbnails/96.jpg)
Coming soon...Intravert. Vert.x+Cassandra.ASF-licensed.Driven by real-world requirements.
Thursday, February 28, 13