{"id":15056895,"url":"https://github.com/dropwizard/dropwizard-cassandra","last_synced_at":"2025-07-11T20:02:45.354Z","repository":{"id":39674890,"uuid":"185870883","full_name":"dropwizard/dropwizard-cassandra","owner":"dropwizard","description":"A convenience library for Apache Cassandra integration in a Dropwizard service.","archived":false,"fork":false,"pushed_at":"2025-06-30T02:02:41.000Z","size":466,"stargazers_count":4,"open_issues_count":5,"forks_count":6,"subscribers_count":6,"default_branch":"release/4.0.x","last_synced_at":"2025-06-30T03:22:08.408Z","etag":null,"topics":["cassandra","dropwizard"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dropwizard.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-05-09T20:59:13.000Z","updated_at":"2025-06-19T23:00:13.000Z","dependencies_parsed_at":"2023-10-03T10:09:19.351Z","dependency_job_id":"7993b5c7-03b6-402d-981a-49f9889098b8","html_url":"https://github.com/dropwizard/dropwizard-cassandra","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/dropwizard/dropwizard-cassandra","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dropwizard%2Fdropwizard-cassandra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dropwizard%2Fdropwizard-cassandra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dropwizard%2Fdropwizard-cassandra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dropwizard%2Fdropwizard-cassandra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dropwizard","download_url":"https://codeload.github.com/dropwizard/dropwizard-cassandra/tar.gz/refs/heads/release/4.0.x","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dropwizard%2Fdropwizard-cassandra/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264890053,"owners_count":23678829,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cassandra","dropwizard"],"created_at":"2024-09-24T21:57:53.002Z","updated_at":"2025-07-11T20:02:45.324Z","avatar_url":"https://github.com/dropwizard.png","language":"Java","readme":"# dropwizard-cassandra\n\n[![Build](https://github.com/dropwizard/dropwizard-cassandra/actions/workflows/build.yml/badge.svg?branch=4.0.x)](https://github.com/dropwizard/dropwizard-cassandra/actions/workflows/build.yml)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=dropwizard_dropwizard-cassandra\u0026metric=alert_status)](https://sonarcloud.io/dashboard?id=dropwizard_dropwizard-cassandra)\n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.dropwizard.modules/dropwizard-cassandra/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.dropwizard.modules/dropwizard-cassandra/)\n\nProvides easy integration for Dropwizard applications with the Datastax Cassandra java driver..\n\nThis bundle comes with out-of-the-box support for:\n* YAML-based configuration and built-in strongly typed configuration validation\n* Cluster connection lifecycle management\n* Cluster health checks\n* Metrics integration for Cassandra driver stats using your applications `MetricRegistry`\n\n## Future improvements\n* Schema migrations functionality, similar to what flyway and liquibase offer for SQL databases.\n\n## Dropwizard Version Support Matrix\n| dropwizard-cassandra | Dropwizard v1.3.x  | Dropwizard v2.0.x  | Dropwizard v2.1.x  | Dropwizard v3.0.x  | Dropwizard v4.0.x  |\n|----------------------|--------------------|--------------------|--------------------|--------------------|--------------------|\n| v1.3.x               | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x:                | :x:                |\n| v1.4.x               | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x:                | :x:                |\n| v2.0.x               | :question:         | :white_check_mark: | :white_check_mark: | :x:                | :x:                |\n| v3.0.x               | :x:                | :x:                | :x:                | :white_check_mark: | :x:                |\n| v4.0.x               | :x:                | :x:                | :x:                | :x:                | :white_check_mark: |\n\n## Usage\nAdd dependency on library.\n\nMaven:\n```xml\n\u003cdependency\u003e\n  \u003cgroupId\u003eio.dropwizard.modules\u003c/groupId\u003e\n  \u003cartifactId\u003edropwizard-cassandra\u003c/artifactId\u003e\n  \u003cversion\u003e4.0.0\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\nGradle:\n```groovy\ncompile \"io.dropwizard.modules:dropwizard-cassandra:4.0.0\"\n```\n\n### Usage\n\n##### Minimal\n```\ncassandra:\n  type: basic\n  contactPoints:\n    - host: localhost\n      port: 9041\n  loadBalancingPolicy:\n    type: default\n    localDataCenter: DC1\n```\n\n#### Comprehensive\n```\ncassandra:\n  type: basic\n  sessionName: name\n  sessionKeyspaceName: keyspace\n  requestOptionsFactory:\n    requestTimeout:5s\n    requestConsistency: local\n    requestPageSize: 12\n    requestSerialConsistency: local\n    requestDefaultIdempotence: true\n  metricsEnabled: true\n  protocolVersion:\n    type: default\n    version: V5\n  ssl:\n    type: default\n    cipherSuites: [\"a\", \"b\"]\n    hostValidation: true\n    keyStorePassword: keyStorePassword\n    keyStorePath: keyStorePath\n    trustStorePassword: trustStorePassword\n    trustStorePath: trustStorePath\n  compression: lz4\n  contactPoints:\n    - host: localhost\n      port: 9041\n  authProvider:\n    type: plain-text\n    username: admin\n    password: hunter2\n  retryPolicy:\n    type: default\n  speculativeExecutionPolicy:\n    type: constant\n    delay: 1s\n    maxSpeculativeExecutions: 3\n  poolingOptions:\n    maxRequestsPerConnection: 5\n    maxRemoteConnections: 10\n    maxLocalConnections: 20\n    heartbeatInterval: 5s\n    connectionConnectTimeout: 10s\n  addressTranslator:\n    type: ec2-multi-region\n  timestampGenerator:\n    type: atomic\n  reconnectionPolicyFactory:\n    type: exponential\n    baseConnectionDelay: 10s\n    maxReconnectionDelay: 30s\n  loadBalancingPolicy:\n    type: default\n    localDataCenter: local\n    dataCenterFailoverAllowLocalConsistencyLevels: true\n    slowAvoidance: true\n    dcFailoverMaxNodesPerRemoteDc: 2\n  cassandraOptions: # to add options which are not supported by default. Full list can be found at https://docs.datastax.com/en/developer/java-driver/4.11/manual/core/\n    - type: long\n      name: advanced.protocol.max-frame-length\n      value: 12\n  sessionMetrics:\n    - continuous-cql-requests\n  nodeMetrics:\n    - bytes-sent\n  schema:\n    agreementIntervalMilliseconds: 200\n    agreementTimeoutSeconds: 10\n    agreementWarnOnFailure: true\n```\n\n#### Note on Multi-Environment Configuration\nIf you have different contact points per deployment environment your application runs in, it may be easier to avoid having to define multiple YAML files per environment by inserting a placeholder in your YAML file that you then override in each environment (via whatever means you normally override config values, whether that's properties, environment variables, or whatever else), and then override that placeholder with a single entry JSON string defining all contact points, to avoid having to deal with YAML lists.\n\n```\ncontactPoints: [${commaSeparatedContactPoints}]\n\ncommaSeparatedContactPoints = {\"host\": \"host1\", \"port\": \"9142\"}, {\"host\": \"host2\", \"port\": \"9142\"}\n```\n\n### Acknowledgements\nThis library was originally built to extend https://github.com/composable-systems/dropwizard-cassandra, but was forked due to some\nneeds that were unmet (for instance, being able to define different `CassandraFactory` implementations, if a modified client is used), and\ndue to lack of maintenance. Big thanks to @stuartgunter for his module, which inspired this one heavily, and for which this module borrows\na lot of ideas and code.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdropwizard%2Fdropwizard-cassandra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdropwizard%2Fdropwizard-cassandra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdropwizard%2Fdropwizard-cassandra/lists"}