{"id":29799106,"url":"https://github.com/pgedge/ace","last_synced_at":"2026-04-02T00:02:36.516Z","repository":{"id":306081836,"uuid":"974948575","full_name":"pgEdge/ace","owner":"pgEdge","description":"The Active Consistency Engine of pgEdge","archived":false,"fork":false,"pushed_at":"2026-03-31T00:34:44.000Z","size":2136,"stargazers_count":9,"open_issues_count":3,"forks_count":3,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-03-31T04:01:21.848Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"postgresql","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pgEdge.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,"notice":"NOTICE.txt","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-04-29T14:46:07.000Z","updated_at":"2026-03-30T10:25:54.000Z","dependencies_parsed_at":"2025-07-23T15:35:53.804Z","dependency_job_id":"501adf17-6ae8-4323-9445-6ebfb89b11d0","html_url":"https://github.com/pgEdge/ace","commit_stats":null,"previous_names":["pgedge/ace"],"tags_count":25,"template":false,"template_full_name":null,"purl":"pkg:github/pgEdge/ace","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgEdge%2Face","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgEdge%2Face/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgEdge%2Face/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgEdge%2Face/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pgEdge","download_url":"https://codeload.github.com/pgEdge/ace/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgEdge%2Face/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31293157,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T21:15:39.731Z","status":"ssl_error","status_checked_at":"2026-04-01T21:15:34.046Z","response_time":53,"last_error":"SSL_read: 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":[],"created_at":"2025-07-28T08:08:38.307Z","updated_at":"2026-04-02T00:02:36.480Z","avatar_url":"https://github.com/pgEdge.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Active Consistency Engine (ACE)\n[![Go Integration Tests](https://github.com/pgEdge/ace/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/pgEdge/ace/actions/workflows/test.yml)\n\n## Table of Contents\n- [ACE Best Practices](./docs/best_practices.md)\n- [Building ACE](README.md#building-ace)\n- [Installing ACE](./docs/install.md)\n- [Configuring ACE](./docs/configuration.md)\n- [Running ACE with Docker](./docs/docker.md)\n- [Using Merkle Trees to Improve ACE Performance](./docs/merkle.md)\n- [Command Reference](./docs/commands/index.md)\n- [Performance Considerations](./docs/performance.md)\n- [Architecture and Design Documents](./docs/design/index.md)\n\nThe Active Consistency Engine (ACE) is a tool designed to ensure eventual consistency between nodes in a cluster.\n\n## Building ACE\n\nBefore building ACE, you need to install Go (version 1.18 or higher).\n\n1.  Clone the repository:\n    ```sh\n    git clone https://github.com/pgedge/ace\n    cd ace\n    ```\n\n2.  Build the executable:\n    ```sh\n    go build -o ace ./cmd/ace/\n    ```\n    This will create an executable file named `ace` in the current directory. You can move this file to a directory in your `PATH` (e.g., `/usr/local/bin`) to make it accessible from anywhere.\n\n## ACE Configuration\n\nBefore invoking any ACE commands, use the following commands to create the configuration files:\n\n```sh\n./ace cluster init --path pg_service.conf\n./ace config init --path ace.yaml\n```\n\nSet the `default_cluster` key in `ace.yaml` to the cluster name you most frequently target. When this value is present, CLI commands will use it automatically unless you provide an explicit cluster argument.\n\n!!! info\n\n    For detailed information about creating and modifying ACE configuration files, visit [here](/docs/configuration.md).\n\nThe [`ace.yaml` file](ace.yaml) defines default values used when executing ACE commands like `table-diff` or `mtree table-diff`.  You can modify properties that influence ACE performance and execution like timeout values and certificate information.\n\nThe `pg_service.conf` file contains cluster connection details that help ACE locate nodes.  After creating the file: \n\n* define a base section named after the cluster (for example `[acctg]`) for cluster details\n* define one section per node, named in the form `[cluster.node]` (for example, `[acctg.n1]`). \n\nThen, update the file with the `host`, `port`, `database`, and credentials for each node before running ACE commands.\n\nACE checks the following locations in order for a pg_service.conf file:\n\n1. The `ACE_PGSERVICEFILE` environment variable.\n2. The `PGSERVICEFILE` environment variable.\n3. The `pg_service.conf` file in the current directory.\n4. `$HOME/.pg_service.conf`.\n5. `/etc/pg_service.conf`.\n\nIf none of these files contain entries for the requested cluster, ACE attempts to read the `\u003ccluster\u003e.json` file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpgedge%2Face","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpgedge%2Face","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpgedge%2Face/lists"}