diff --git a/README.md b/README.md index 3324461..0948125 100644 --- a/README.md +++ b/README.md @@ -18,3 +18,47 @@ Includes most common supported error types like Mongo DB client routines, allowing streamlining and centralizing the core functions and operations with standard implementation. with most of the capabilities offered by mongo DB + +### Reconciler infra +Reconciler infra is influenced by kubernetes controller and manager +infrastructure. However, unlike kubernetes here this infra is responsible for +providing Reconciliation engine while working with any data store instead of +Kubernetes CRDs. Where currently it supports mongodb client based data store +as well as a local cached datastore based reconciliation logics + +Additionally, infra has pipelines support maintaining separate pipelines for +individual clients allowing capability of requeuing the entry to be processed +again after some time or observed error while processing it, so requeue for +processing again immediately. + +### Sync Package +Sync infra provides logic for synchronization between processes and/or +microservices. Providing a base logic layer allowing seemslessly working +between multiple microservices working in tandom. This package provides +following support + +#### Owner Infra +Owner infra is the base requirement for anyone using sync package, where they +initialize the owner infra with datastore to be used along with the owner name +for the reference, where any sync construct provided will be using this owner +name as the reference for managing sync constructs while ensuring cleanup of +sync objects when the corresponding owner object is deleted either due to +shutdown or timeout/agedout by participating processes. + +Here this also ensures appending an autogenerated ID along with the owner name +providing capability to seemlessly work with multiple replicas of same +microservice and handling restart scenarios (graceful as well as non-graceful) + +#### Lock infra +Lock infra provides sync construct equivalent of mutex but capability of +working across processes as functionality is provided out of mongodb backed +datastore. This allows holding and managing a lock across processes while +possibly running on different physical servers (kubernetes nodes) + +#### Provider and Observer infra +This infra is motivated with providing capability of working with service +providers possibly comming from multiple replicas or processes and observers +with a need to react on availability of first provider or unavailability of +last provider to trigger certain logics, while moving from 1 provider to +multiple are typically handled due to a load balancer capabilities provided +by kubernetes or equivalent systems \ No newline at end of file