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 | NoopDurationChecker | ElasticSearchDurationChecker | |||||||||||||
7 | ActivationServiceImpl | ||||||||||||||
8 | InvokerHealthManager | EtcdUtils | |||||||||||||
9 | DataManagementService | EtcdClient | |||||||||||||
10 | WatcherService | EtcdClient | |||||||||||||
11 | FPCInvokerServer | InvokerHealthManager | EtcdUtils | ||||||||||||
12 | LeaseKeepAliveService | EtcdClient | WatcherService | ||||||||||||
13 | ContainerManager | EtcdClient | EtcdUtils | ||||||||||||
14 | EtcdUtils | LeaseKeepAliveService | EtcdClient | WatcherService | |||||||||||
15 | FunctionPullingContainerPool | EtcdClient | DataManagementService | InvokerHealthManager | |||||||||||
16 | QueueManager | EtcdClient | EtcdUtils | DataManagementService | WatcherService | ||||||||||
17 | ContainerCreationConsumer | FunctionPullingContainerPool | EtcdClient | DataManagementService | InvokerHealthManager | ||||||||||
18 | CreationJobManager | EtcdClient | EtcdUtils | QueueManager | DataManagementService | WatcherService | |||||||||
19 | MemoryQueue | EtcdClient | EtcdUtils | ContainerManager | ActivationServiceImpl | ElasticSearchDurationChecker | QueueManager | WatcherService | CreationJobManager | ||||||
20 | ActivationClientProxy | ActivationServiceImpl | MemoryQueue | EtcdClient | EtcdUtils | ContainerManager | ActivationServiceImpl | ElasticSearchDurationChecker | QueueManager | WatcherService | CreationJobManager | ||||
21 | FunctionPullingContainerProxy | EtcdUtils | DataManagementService | ActivationClientProxy | InvokerHealthManager | ActivationClientProxy | |||||||||
22 | FPCInvokerReactive | DataManagementService | LeaseKeepAliveService | WatcherService | ActivationServiceImpl | EtcdClient | EtcdUtils | FPCScheduler | FunctionPullingContainerPool | FunctionPullingContainerProxy | |||||
23 | FPCScheduler | EtcdClient | EtcdUtils | ContainerManager | CreationJobManager | ActivationServiceImpl | DataManagementService | LeaseKeepAliveService | WatcherService | ElasticSearchDurationChecker | QueueManager | MemoryQueue | |||
24 | FPCPoolBalancer | EtcdClient | EtcdUtils | FPCScheduler | ContainerManager | CreationJobManager | ActivationServiceImpl | DataManagementService | LeaseKeepAliveService | WatcherService | ElasticSearchDurationChecker | QueueManager |