An open API service providing package, version and dependency metadata of many open source software ecosystems and registries.

github.com/mongodb/anser

Package anser provides a document transformation and processing tool to support data migrations. The anser.Application is the primary interface in which migrations are defined and executed. Applications are constructed with a list of MigrationGenerators, and relevant operations. Then the Setup method configures the application, with an anser.Environment, which sets up and collects dependency information. Finally, the Run method executes the migrations in two phases: first by generating migration jobs, and finally by running all migration jobs. The ordering of migrations is derived from the dependency information between generators and the jobs that they generate. When possible jobs are executed in parallel, but the execution of migration operations is a property of the queue object configured in the anser.Environment. The anser package provides a custom amboy/dependency.Manager object, which allows migrations to express dependencies to other migrations. The State() method ensures that all migration IDs specified as edges are satisfied before reporting as "ready" for work. Anser provides the Environment interface, with a global instance accessible via the exported GetEnvironment() function to provide access to runtime configuration state: database connections; amboy.Queue objects, and registries for task implementations. The Environment is an interface: you can build a mock, or use one provided for testing purposes by anser (coming soon). Generators create migration operations and are the first step in an anser Migration. They are supersets of amboy.Job interfaces. The current limitation is that the generated jobs must be stored within the implementation of the generator job, which means they must either all fit in memory *or* be serializable independently (e.g. fit in the 16mb document limit if using a MongoDB backed queue.)

Ecosystem
proxy.golang.org
Latest Release
v0.0.0-20231019191251-2a589a5299e6
over 2 years ago
Versions
8
Dependent Packages
5
Dependent Repos
17
Links
Registry proxy.golang.org
Source Repository
Docs Documentation
JSON API View JSON
CodeMeta codemeta.json
Package Details
PURL pkg:golang/github.com/mongodb/anser
spec
License Apache-2.0
Namespace github.com/mongodb
First Release over 3 years ago
Last Synced 17 days ago
Repository
Stars 20 on GitHub
Forks 17 on GitHub
Commits 165
Committers 12
Avg per Author 13.75
DDS 0.667
Rankings on proxy.golang.org
Overall Top 4.3%
Dependent packages Top 2.5%
Dependent repos Top 1.3%
Forks Top 5.0%