{"id":36548112,"url":"https://github.com/basalam/kaastolon","last_synced_at":"2026-01-12T06:14:43.932Z","repository":{"id":49093417,"uuid":"455900831","full_name":"basalam/kaastolon","owner":"basalam","description":"A fork of solon PostgreSQL HA With our customizations","archived":false,"fork":false,"pushed_at":"2024-04-19T12:33:18.000Z","size":9674,"stargazers_count":9,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-06-20T08:15:16.925Z","etag":null,"topics":["consul","etcd","high-availability","kubernetes","postgresql","stolon"],"latest_commit_sha":null,"homepage":"","language":"Go","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/basalam.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-02-05T15:03:43.000Z","updated_at":"2023-08-08T15:27:48.000Z","dependencies_parsed_at":"2024-01-08T19:28:06.997Z","dependency_job_id":"ece0024d-1ec7-419f-b02a-c12edf2f309c","html_url":"https://github.com/basalam/kaastolon","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/basalam/kaastolon","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basalam%2Fkaastolon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basalam%2Fkaastolon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basalam%2Fkaastolon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basalam%2Fkaastolon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/basalam","download_url":"https://codeload.github.com/basalam/kaastolon/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basalam%2Fkaastolon/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28336311,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T06:09:07.588Z","status":"ssl_error","status_checked_at":"2026-01-12T06:05:18.301Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["consul","etcd","high-availability","kubernetes","postgresql","stolon"],"created_at":"2026-01-12T06:14:39.120Z","updated_at":"2026-01-12T06:14:43.919Z","avatar_url":"https://github.com/basalam.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# kaastolon a fork of stolon - PostgreSQL cloud native High Availability\n\n[![Discourse](https://img.shields.io/discourse/https/talk.stolon.io/status.svg)](https://talk.stolon.io)\n[![Go Report Card](https://goreportcard.com/badge/github.com/basalam/kaastolon)](https://goreportcard.com/report/github.com/basalam/kaastolon)\n[![Downloads](https://img.shields.io/github/downloads/basalam/kaastolon/latest/total.svg)](https://github.com/basalam/kaastolon/releases)\n[![Latest release](https://img.shields.io/github/release/basalam/kaastolon.svg)](https://github.com/basalam/kaastolon/releases)\n\n![Stolon Logo](logos/stolon-color.png)\n\n## Why?\n\nOriginal Stolon is not so active to accept things like new features, etc. (they are mostly working on some bug fixed and pg version)\n\nSo we made this repo to be more active ;)\n\nBut we are watching original repo to keep things up to date\n\n## Behind kaastolon\n\nkaastolon is coming from where they call Karimi as a Service so I merged stolon with that ;)\n\n## Behind stolon\n\nstolon is a cloud native PostgreSQL manager for PostgreSQL high availability. It's cloud native because it'll let you keep an high available PostgreSQL inside your containers (kubernetes integration) but also on every other kind of infrastructure (cloud IaaS, old style infrastructures etc...)\n\nFor an introduction to stolon you can also take a look at [this post](https://sgotti.me/post/stolon-introduction/)\n\n## Our Features\n\n- an extra argument for connecting to slave nodes (in kubernetes you can add extra service and deployment for proxy with that one)\n- added simple round robin for selecting slave node\n- add PostgreSQL 16 support (drop PostgreSQL 10 support)\n- probe api added (with `/readyz` and `/healthz` endpoints)\n\n#### Realesed and docker images are published ;)\n\n## Features\n\n- Leverages PostgreSQL streaming replication.\n- Resilient to any kind of partitioning. While trying to keep the maximum availability, it prefers consistency over availability.\n- [kubernetes integration](examples/kubernetes/README.md) letting you achieve postgreSQL high availability.\n- Uses a cluster store like [etcd](https://etcd.io), [consul](https://www.consul.io) or kubernetes API server as an high available data store and for leader election\n- Asynchronous (default) and [synchronous](doc/syncrepl.md) replication.\n- Full cluster setup in minutes.\n- Easy [cluster administration](doc/stolonctl.md)\n- Can do point in time recovery integrating with your preferred backup/restore tool.\n- [Standby cluster](doc/standbycluster.md) (for multi site replication and near zero downtime migration).\n- Automatic service discovery and dynamic reconfiguration (handles postgres and stolon processes changing their addresses).\n- Can use [pg_rewind](doc/pg_rewind.md) for fast instance resynchronization with current master.\n\n## Architecture\n\nStolon is composed of 3 main components\n\n- keeper: it manages a PostgreSQL instance converging to the clusterview computed by the leader sentinel.\n- sentinel: it discovers and monitors keepers and proxies and computes the optimal clusterview.\n- proxy: the client's access point. It enforce connections to the right PostgreSQL master and forcibly closes connections to old masters.\n- slave proxy (optional): same as proxy but for readonly connections\n\nFor more details and requirements see [Stolon Architecture and Requirements](doc/architecture.md)\n\n![Stolon architecture](doc/architecture_small.png)\n\n## Documentation\n\n[Documentation Index](doc/README.md)\n\n## Installation\n\nStolon is available in [brew](https://brew.sh/). It is **unofficial and not supported** by the project.\nSo check the version before installing using `brew`.\n\n[Step to install using brew](doc/unofficial_packages.md)\n\n## Quick start and examples\n\n- [Simple cluster example](doc/simplecluster.md)\n- [Kubernetes example](examples/kubernetes/README.md)\n- [Two (or more) nodes setup](doc/twonodes.md)\n\n## Project Status\n\nStolon is under active development and used in different environments. Probably its on disk format (store hierarchy and key contents) will change in future to support new features. If a breaking change is needed it'll be documented in the release notes and an upgrade path will be provided.\n\nAnyway it's quite easy to reset a cluster from scratch keeping the current master instance working and without losing any data.\n\n## Requirements\n\n- PostgreSQL 16, 15, 14, 13, 12, 11, 10\n- etcd2 \u003e= v2.0, etcd3 \u003e= v3.0, consul \u003e= v0.6 or kubernetes \u003e= 1.8 (based on the store you're going to use)\n\n- OS: currently stolon is tested on GNU/Linux (with reports of people using it also on Solaris, \\*BSD and Darwin)\n\n## build\n\nTo build stolon we usually test and support the latest two major versions of Go like in the [Go release policy](https://golang.org/doc/devel/release.html#policy).\n\n```\nmake\n```\n\n## High availability\n\nStolon tries to be resilient to any partitioning problem. The cluster view is computed by the leader sentinel and is useful to avoid data loss (one example over all avoid that old dead masters coming back are elected as the new master).\n\nThere can be tons of different partitioning cases. The primary ones are covered (and in future more will be added) by various [integration tests](tests/integration)\n\n## FAQ\n\nSee [here](doc/faq.md) for a list of faq. If you have additional questions please ask.\n\n## Contributing to stolon\n\nstolon is an open source project under the Apache 2.0 license, and contributions are gladly welcomed!\nTo submit your changes please open a pull request.\n\n## Contacts\n\n- For general discussion about using and developing stolon, join the [stolon forum](https://talk.stolon.io)\n- For bugs and feature requests file an [issue](https://github.com/basalam/kaastolon/issues/new/choose)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbasalam%2Fkaastolon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbasalam%2Fkaastolon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbasalam%2Fkaastolon/lists"}