This document describes the design considerations, requirements, test cases, failure and edge cases of each component.
The table below defines the order to implement each module. Less dependent modules will be implemented first.
Order | Module | Dependencies | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | EtcdClient | ||||||||||||
2 | FPCEntitlementProvider | ||||||||||||
3 | FPCSchedulerServer | ||||||||||||
4 | NamespaceContainerCount | ||||||||||||
5 | ElasticSearchDurationChecker | ||||||||||||
6 | ActivationServiceImpl | ||||||||||||
7 | InvokerHealthManager | EtcdUtils | |||||||||||
8 | DataManagementService | EtcdClient | |||||||||||
9 | WatcherService | EtcdClient | |||||||||||
10 | ContainerCreationConsumer | FunctionPullingContainerPool | |||||||||||
11 | FPCInvokerServer | InvokerHealthManager | EtcdUtils | ||||||||||
12 | LeaseKeepAliveService | EtcdClient | WatcherService | ||||||||||
13 | ContainerManager | EtcdClient | EtcdUtils | ||||||||||
14 | EtcdUtils | LeaseKeepAliveService | EtcdClient | WatcherService | |||||||||
15 | FunctionPullingContainerPool | EtcdClient | DataManagementService | InvokerHealthManager | |||||||||
16 | FunctionPullingContainerProxy | EtcdUtils | DataManagementService | ActivationClientProxy | InvokerHealthManager | ||||||||
17 | QueueManager | EtcdClient | EtcdUtils | DataManagementService | WatcherService | ||||||||
18 | CreationJobManager | EtcdClient | EtcdUtils | QueueManager | DataManagementService | WatcherService | |||||||
19 | ActivationClientProxy | ActivationServiceImpl | MemoryQueue | EtcdClient | EtcdUtils | ContainerManager | ActivationServiceImpl | ElasticSearchDurationChecker | |||||
20 | MemoryQueue | EtcdClient | EtcdUtils | ContainerManager | ActivationServiceImpl | ElasticSearchDurationChecker | QueueManager | WatcherService | CreationJobManager | ||||
21 | FPCInvokerReactive | DataManagementService | LeaseKeepAliveService | WatcherService | ActivationServiceImpl | EtcdClient | EtcdUtils | FPCScheduler | FunctionPullingContainerPool | FunctionPullingContainerProxy | InvokerHealthManager | ||
22 | FPCScheduler | EtcdClient | EtcdUtils | ContainerManager | CreationJobManager | ActivationServiceImpl | DataManagementService | LeaseKeepAliveService | WatcherService | ElasticSearchDurationChecker | QueueManager | MemoryQueue | |
23 | FPCPoolBalancer | EtcdClient | EtcdUtils | FPCScheduler | ContainerManager | CreationJobManager | ActivationServiceImpl | DataManagementService | LeaseKeepAliveService | WatcherService | ElasticSearchDurationChecker | QueueManager | MemoryQueue |