{"id":13796769,"url":"https://github.com/projectbarbel/barbelhisto-core","last_synced_at":"2025-05-13T00:31:06.295Z","repository":{"id":39960411,"uuid":"162972149","full_name":"projectbarbel/barbelhisto-core","owner":"projectbarbel","description":"Lightweight ultra-fast library to store data in bi-temporal format","archived":false,"fork":false,"pushed_at":"2023-09-19T17:44:47.000Z","size":1349,"stargazers_count":42,"open_issues_count":6,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-08-04T23:10:44.309Z","etag":null,"topics":["bitemporal","framework","java"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/projectbarbel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-12-24T09:09:06.000Z","updated_at":"2024-03-14T07:24:53.000Z","dependencies_parsed_at":"2022-08-09T15:36:43.416Z","dependency_job_id":null,"html_url":"https://github.com/projectbarbel/barbelhisto-core","commit_stats":null,"previous_names":[],"tags_count":52,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/projectbarbel%2Fbarbelhisto-core","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/projectbarbel%2Fbarbelhisto-core/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/projectbarbel%2Fbarbelhisto-core/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/projectbarbel%2Fbarbelhisto-core/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/projectbarbel","download_url":"https://codeload.github.com/projectbarbel/barbelhisto-core/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225159879,"owners_count":17430203,"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":["bitemporal","framework","java"],"created_at":"2024-08-03T23:01:14.917Z","updated_at":"2024-11-18T10:31:37.412Z","avatar_url":"https://github.com/projectbarbel.png","language":"Java","funding_links":[],"categories":["Bi-temporality Tools + Modeling"],"sub_categories":[],"readme":"# barbelhisto\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Build Status](https://app.travis-ci.com/projectbarbel/barbelhisto-core.svg?branch=master)](https://app.travis-ci.com/projectbarbel/barbelhisto-core)\n[![Maven Central](https://img.shields.io/maven-central/v/org.projectbarbel/barbelhisto.svg)](https://search.maven.org/search?q=barbelhisto)\n\nA lightweiht easy to use Java library to store the history of changes of domain objects in bi-temporal format. \n\n`BarbelHisto` tracks two time dimensions for you: **record time** is when a change to a domain object was recorded in the system (created and inactivated) and **effective time** is when this change is opposed to become effective or valid from a business viewpoint.\n\nThe library implements Martin Fowlers Temporal Pattern that can be found here: https://martinfowler.com/eaaDev/timeNarrative.html\n\n# Features\n\n- bi-temporal (auditing-proof) data storage based on blazing fast [cqengine](https://github.com/npgall/cqengine) collections\n- small easy-to-use API (as simple as bi-temporal data storage can get)\n- backed by transactional, high performance collections\n- works out of the box with default implementation and configuration\n- manage different time zones of client and server\n- persistence support for heap, off-heap, disk storage and custom data stores\n- provides basic functionality, extendible for individual needs\n- remember every change to the data, nothing is ever going to be deleted\n- build-in thread safety by minimizing mutability and object locking\n- pretty print function to learn about bitemporal data storage\n\n# Get a version of BarbelHisto\nGet a version on [Maven Central](https://search.maven.org/search?q=barbelhisto).\n\nDownload the [actual snapshot releases](https://github.com/projectbarbel/barbelhisto-core/releases). \n\nOr clone this git repository to try some of the features of `BarbelHisto`.\n\n# Getting started with POJOs\n- [Get started with Spring turorial](https://dzone.com/articles/integrating-bi-temporal-data-in-spring-boot-applic)\n- [Get started with Mongo turorial](https://dzone.com/articles/setting-up-mongodb-for-bi-temporal-data-in-5-minut)\n\n# Memory analysis\nMemory analysis results. One hour run, 5000 Objects saved every 10 seconds. `OnHeapPersistence`. \n\u003cbr\u003eResult details [here](https://github.com/projectbarbel/barbelhisto-core/blob/master/performance/BarbelCoreSaveMemoryTest.txt).\n![Memory](https://user-images.githubusercontent.com/876604/53019849-fb084b00-3455-11e9-8625-6c2bf1be1576.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprojectbarbel%2Fbarbelhisto-core","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprojectbarbel%2Fbarbelhisto-core","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprojectbarbel%2Fbarbelhisto-core/lists"}