Replicante Core attempts to limit the number of required dependencies to avoid management overhead. On the other hand it is unwise to re-implement complex systems (such as databases) if there is no need to.
In order to run, replicante requires the following:
It is possible to use the same technology to provide more then one dependency. Such approach is a good way to balance performance, scalability and complexity.
Replicante Core supports high availability, machine failure tolerance, and horizontal scaling.
To achieve this Replicante Core runs on multiple instances.
A distributed coordinator is a system (itself also highly available) that allows the coordination of work across all processes as well as the re-distribution of work assigned to failed processes.
Supported systems:
Message queues services are a way for a system to request asynchronous work to be performed by a pool of worker nodes. This allows Replicante Core to better distribute work across processes, optimally handle spikes in demand and ensure all work is executed.
Supported systems:
Used to persist the information collected from users, nodes, generated metadata, and any other permanent data that is required by Replicante Core to run.
Supported systems:
Events generated by Replicante are emitted onto a streaming platform. This provides two advantages:
Supported systems:
Some features may rely on additional runtime dependencies. To keep the set of required dependencies to a minimum these features must be enabled explicitly.
The needed systems and configuration details are documented within the features that need them.