Talk about Data Platform, not just a database. Customers are building Service Endpoints and multiple types of applications and use cases per customer.
Memory-first architecture
Integrated, distributed caching tier
High performant, in-memory streaming across all database services
Full SQL query language (N1QL)
Best-in-class In-Memory Indexing
Active-Active global data replication
High speed Intra and Inter-cluster In-memory replication
Big Data integrations
Leverage In-Memory replication (Spark & Kafka)
Mobile
On-device local cache / storage (Offline & Peer-to-Peer operations)
Automatic multi-master replication
Full stack secure data management
at-most-once delivery means that for each message handed to the mechanism, that message is delivered zero or one times; in more casual terms it means that messages may be lost.
at-least-once delivery means that for each message handed to the mechanism potentially multiple attempts are made at delivering it, such that at least one succeeds; again, in more casual terms this means that messages may be duplicated but not lost.
exactly-once delivery means that for each message handed to the mechanism exactly one delivery is made to the recipient; the message can neither be lost nor duplicated.
https://dzone.com/articles/kafka-clients-at-most-once-at-least-once-exactly-o
The first one is the cheapest—highest performance, least implementation overhead—because it can be done in a fire-and-forget fashion without keeping state at the sending end or in the transport mechanism.
The second one requires retries to counter transport losses, which means keeping state at the sending end and having an acknowledgement mechanism at the receiving end.
The third is most expensive—and has consequently worst performance—because in addition to the second it requires state to be kept at the receiving end in order to filter out duplicate deliveries.
An at-most-once scenario happens when the commit interval has occurred, and that in turn triggers Kafka to automatically commit the last used offset. Meanwhile, let us say the consumer did not get a chance to complete the processing of the messages and consumer has crashed. Now when consumer restarts, it starts to receive messages from the last committed offset, in essence consumer could lose a few messages in between.
At-least-once scenario happens when consumer processes a message and commits the message into its persistent store and consumer crashes at that point. Meanwhile, let us say Kafka could not get a chance to commit the offset to the broker since commit interval has not passed. Now when the consumer restarts, it gets delivered with a few older messages from the last committed offset.
KEY POINT: Applications communicate directly to the services they need to fulfill the application request and the application does not need to be topology aware as the SDK has that already.
Single node type, services defined dynamically
One node acts the same as 100, just the services are spread out in the cluster
Query service accesses Index and Data to formulate response
All query and document access is topology aware and dynamically scalable
Develop with one node, deploy against multiple production nodes
The Couchbase SDK handles knowing about where in the cluster it needs to go to satisfy whatever the application is requesting, be I CRUD or cluster management.
KEY POINT: Applications communicate directly to the services they need to fulfill the application request and the application does not need to be topology aware as the SDK has that already.
Single node type, services defined dynamically
One node acts the same as 100, just the services are spread out in the cluster
Query service accesses Index and Data to formulate response
All query and document access is topology aware and dynamically scalable
Develop with one node, deploy against multiple production nodes
The Couchbase SDK handles knowing about where in the cluster it needs to go to satisfy whatever the application is requesting, be I CRUD or cluster management.
KEY POINT: Applications communicate directly to the services they need to fulfill the application request and the application does not need to be topology aware as the SDK has that already.
Single node type, services defined dynamically
One node acts the same as 100, just the services are spread out in the cluster
Query service accesses Index and Data to formulate response
All query and document access is topology aware and dynamically scalable
Develop with one node, deploy against multiple production nodes
The Couchbase SDK handles knowing about where in the cluster it needs to go to satisfy whatever the application is requesting, be I CRUD or cluster management.
KEY POINT: Applications communicate directly to the services they need to fulfill the application request and the application does not need to be topology aware as the SDK has that already.
Single node type, services defined dynamically
One node acts the same as 100, just the services are spread out in the cluster
Query service accesses Index and Data to formulate response
All query and document access is topology aware and dynamically scalable
Develop with one node, deploy against multiple production nodes
The Couchbase SDK handles knowing about where in the cluster it needs to go to satisfy whatever the application is requesting, be I CRUD or cluster management.
Image from http://docs.confluent.io/3.0.0/platform.html + couchbase logo instead of ERP :)
Link to Kafka intro video https://www.youtube.com/watch?v=wMLAlJimPzk ?
Source of image: https://www.confluent.io/product/compare/