{"id":27976933,"url":"https://github.com/neo4j-examples/neo4j-fabric-examples","last_synced_at":"2025-09-15T18:59:59.326Z","repository":{"id":137546905,"uuid":"436254846","full_name":"neo4j-examples/neo4j-fabric-examples","owner":"neo4j-examples","description":"Set of resources for the real time detection of fraud with Neo4j Fabric across shards, use case transaction structuring aka smurfing","archived":false,"fork":false,"pushed_at":"2021-12-09T09:44:08.000Z","size":1579,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-05-08T01:42:55.096Z","etag":null,"topics":["fabric","financial","fraud-prevention","neo4j","sharding"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","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/neo4j-examples.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":"2021-12-08T13:20:08.000Z","updated_at":"2023-02-07T09:10:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"68c248d7-4285-4ca7-869f-5aa3bde2adc7","html_url":"https://github.com/neo4j-examples/neo4j-fabric-examples","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/neo4j-examples/neo4j-fabric-examples","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neo4j-examples%2Fneo4j-fabric-examples","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neo4j-examples%2Fneo4j-fabric-examples/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neo4j-examples%2Fneo4j-fabric-examples/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neo4j-examples%2Fneo4j-fabric-examples/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/neo4j-examples","download_url":"https://codeload.github.com/neo4j-examples/neo4j-fabric-examples/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neo4j-examples%2Fneo4j-fabric-examples/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270871730,"owners_count":24660260,"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","status":"online","status_checked_at":"2025-08-17T02:00:09.016Z","response_time":129,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["fabric","financial","fraud-prevention","neo4j","sharding"],"created_at":"2025-05-08T01:42:49.380Z","updated_at":"2025-09-15T18:59:54.289Z","avatar_url":"https://github.com/neo4j-examples.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# fabric for fraud\nFollowing set of resources have been provided to help you get going with Fabric.\n\nBased upon Financial Fraud use case for Trinity Bank (a simulated bank)\nFraud type: the fraudulent structuring of transactions aka smurfing\n\nShows you how to \n+ Run fabric and the database shards on docker or minikube\n\t - refer to the folder docker\n\t - or refer to folder kubernetes for doing it with Minikube (need to review instructions)\n\t - at this point fabric proxy is ready BUT you cant query because the databases DONT exist\n+ The synthetic data set - refer to folder synthetic-data \n\t- of 500 customers (customers.csv) and 3 months of transactions (transactions.csv, into one graph\n+ How to Import\n\t- Either use http://data-importer.graphapp.io/ to get the data into default neo4j database\n\t- Or refer to folder import, and use import.cypher to populate the neo4j database with the set of commands that the data-importer generated\n+ How to label by month, and then shard the data across 3 shards - refer to the folder shard-the-data\n\t1) run shard-the-dataset.cypher \n\t2) perform admin commands in the copy-the-data-to-shards AS user neo4j (dont use ROOT)\n\t3) create-customer-shard-constraints (these commands are outputted to console when you copy-the-shard-data)\n\t4) create-transaction-shard-constraints\n+ Perform sample queries using fabric - refer to the file Queries\n\t- Please NOTE that the queries use the new syntax in 4.4 - Node Patterns: predicates on properties\n\t- IF you decide to run neo4j 4.3 instead, or want a mix of 4.3 and 4.4 databases you will need to modify the queries\n+ Some basic Troubleshooting if you have any problems\n\n# synthetic data generator (transaction-generator)\nHas been provided in the form of a Jupyter Notebook.\nIt can be used to\n+ Generate any number of Trinity bank customers - default is 500\n+ Change the upper and lower limits for the random generator that creates transaction between bank a/c - default is 30 to 100\n+ Change the % of Trinity account holders that make transactions with other Trinity a/cs\n+ Change the upper limit of the no. of random transactions created between Trinity a/cs\n+ Change the currency, default USD\n\nGenerates the following files \n+ output/customers.csv\n+ output/transactions.csv\n\nNotes on the generator\n+ Uses faker python module to generate the data\n+ It is representative but not accurate data\n+ for example Sort-code isnt used, names dont match email addresses\n+ Does not generate structured transactions\n\n\n# ToDO\n+ Public version of the CL deck\n+ More notes on running the K8s / Minikube\n+ Create structured transactions\n+ Create a query to find the fraud\n+ More adv. cypher queries\n\t- Recomposing the graph\n+ Demo use cases for fabric with Aura\n\t- federated Neo4j + Aura queries\n\t- E.g cut over from on prem to cloud (question in CL session)\n\t- use for migration\n\t- use for DR\n+ Federated databases for fraud rings\n\t- Multi-bank system generator with stolen identities generator \n\t- Fraud ring data set\n\t- Synthetic and stolen identities\n+ Using GDS\n+ Using Bloom\n+ Getting ready for 5.0\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneo4j-examples%2Fneo4j-fabric-examples","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fneo4j-examples%2Fneo4j-fabric-examples","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneo4j-examples%2Fneo4j-fabric-examples/lists"}