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.
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.
Used to persist the information collected from users, nodes, generated metadata, and any other permanent data that is required by Replicante Core to run.
Events generated by Replicante are emitted onto a streaming platform. This provides two advantages:
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.