Migration: Bundles
RavenDB 4.0 doesn't have the notion of bundles. All features are built into the RavenDB server.
Many of RavenDB 3.x bundles have been designed to work in a cluster environment. You will find them as Ongoing Tasks.
However, some of the bundles are no longer available in version 4.0 so it might be necessary to take a different approach during the migration of some functionalities.
Authorization
Authorization is based on client X.509 certificates.
Cascade Delete
The attachments are always tied to their documents. The deletion of a document results in removing all its attachments as well (in the same transaction).
Deletion of referenced / child documents needs to be handled by your application. You just simply need to call session.Delete()
for related documents when deleting the main one.
Compression
The large fields of documents being strings are compressed by default. It is the built-in feature of the blittable JSON: the internal format for storing documents by RavenDB. The repeated properties are also optimized.
Each attachment has the hash calculated based on its content. If multiple attachments have the same hash, the data will be stored just once.
Encryption
The encryption can be turned on during a database creation. Data is encrypted by the 'ChaCha20-Poly1305' algorithm from a well-known battle-tested encryption library called 'libsodium'.
Expiration
Document Expiration can be enabled in the database settings.
Periodic Export
It can be setup as a backup task. You can choose what kind of backup you want to create periodically.
Replication
When running in a cluster, the replication is always turned on between databases belonging to the same database group. In addition, you can define external replication tasks that will create an off-site replica outside the cluster.
Since version 4.0, there is no need for a Raven/ServerPrefixForHilo
document. The node tag is always included by default to auto generated document identifiers.
Scripted Index Results
Documents can be created based on indexing results using the OutputReduceToCollection
option for map-reduce indexes. It allows you to create recursive map-reduce indexes. More details here.
SQL Replication
It is defined as a SQL ETL task.
Unique Constraints
CompareExchangeValue
operations (Get/Put/Delete
) and querying with the usage of the CmpXchg
method are the way to achieve Unique Constraints bundle functionality.
Please see Compare Exchange Overview.
Versioning
Document Revisions can be enabled in the database settings.