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