{"id":15993714,"url":"https://github.com/jexp/neo4j-ttl","last_synced_at":"2025-06-13T06:35:26.039Z","repository":{"id":66743976,"uuid":"51617239","full_name":"jexp/neo4j-ttl","owner":"jexp","description":"Time To Live extension for Neo4j Nodes","archived":false,"fork":false,"pushed_at":"2016-02-16T11:03:39.000Z","size":13,"stargazers_count":3,"open_issues_count":1,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-23T11:11:23.249Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jexp.png","metadata":{"files":{"readme":"readme.adoc","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-02-12T21:21:11.000Z","updated_at":"2023-09-24T05:15:12.000Z","dependencies_parsed_at":"2023-05-02T22:15:52.304Z","dependency_job_id":null,"html_url":"https://github.com/jexp/neo4j-ttl","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jexp%2Fneo4j-ttl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jexp%2Fneo4j-ttl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jexp%2Fneo4j-ttl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jexp%2Fneo4j-ttl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jexp","download_url":"https://codeload.github.com/jexp/neo4j-ttl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245809639,"owners_count":20676025,"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":[],"created_at":"2024-10-08T07:02:08.775Z","updated_at":"2025-03-27T08:30:47.057Z","avatar_url":"https://github.com/jexp.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"== Neo4j Time To Live Extension\n\nAdds a customizable time-to-live mechanism to Neo4j.\n\n=== Approach\n\nUses indexed properties, range searches, and detach delete.\n\n=== Installation\n\n* Clone this repository and run `mvn install`\n* Also copy `target/neo4j-ttl-1.0-SNAPSHOT.jar` to the `plugins` folder\n* Modify `conf/neo4j.properties` accordingly (see the Example section)\n* Restart Neo4j\n\n=== Example\n\nIf you configure in `conf/neo4j.properties`:\n\n----\nttl.label=Timed\nttl.property=ttl\nttl.schedule=60s\n----\n\nWith that in place, Neo4j will now track changes to nodes labeled\n`Timed` and expires them after their `ttl` property is smaller than the current `timestamp()`\n\n=== In Essence\n\n[source,cypher]\n----\n// create index for range searches\nCREATE INDEX ON :Timed(ttl);\n\n// create time-bound node\nCREATE (n:Token:Timed {uid:\"38948-3434-33\", ttl:timestamp() + 180*1000});\n\n// schedule to run regularly\nMATCH (n:Timed) WHERE n.ttl \u003c= timestamp() WITH n LIMIT 10000 DETACH DELETE n RETURN count(*) as c\n----\n\n\n=== Todo\n\n* Support expiring of relationships\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjexp%2Fneo4j-ttl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjexp%2Fneo4j-ttl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjexp%2Fneo4j-ttl/lists"}