Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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