# Fission Roadmap ## Function features (area-func) Secrets, configmaps, env vars Volumes Mem requests and limits Function exec time deadline Expose a regular K8s Service for a function ## Fission API (area-api) TPR-based controller API authentication Aggregated API server ## Development Workflows (area-dev) Function Versioning Versioning for a group of functions Rolling upgrades for one function for multiple functions for functions + other kubernetes deployments Unit testing ## API Gateway / Ingress features (area-ingress) Function authn hooks K8s Ingress flag Bundle an ingress controller? ## Workflows and Function composition (area-composition) Simple Composition - Sync Simple Composition - Async Hooks (pre, post, on-error) Workflows Testing in the presence of function composition ## Events (area-events) NATS Kafka AWS: SNS, SQS Google PubSub RabbitMQ Other event sources Bundle an event queue (NATS streaming, most probably) ## Operability (area-ops) ### Fission Install/Upgrade (area-install) Helm Installer for Fission Helm installation for fission functions CLI installer/upgrader? ("fission upgrade") Upgrade checker/reminder (like minikube does) CLI auto-upgrader ### Function observation (area-observe) Function Logging Tracing -- Opentracing Metrics -- Prometheus Function exception tracking Logging function load errors Tracing fission overheads for each function ## Function Security Function isolation (is authz hook sufficient or do we need something like mutual TLS?) ## UX, especially for beginners (area-ux) Fission CLI should include a tutorial Fission CLI should have a way to drop you into the UI Eliminate FISSION_URL, just use kube client to find fission url. Also useful to grab credentials. ## Documentation (area-doc) Installation guide improvements Troubleshooting guide for common problems FAQ Performance overview Render docs nicely to fission.io ## Web UI (tracked separately in the fission-ui repo) ## Performance and Scalability (area-perf) Autoscaling Cold-start optimization -- optimistically choose from pool, save about ~20msec Cold-start optimization -- preload funcs in fetcher Cold-start optimization -- preload libraries in envs (v2) -- mem vs. speed tradeoff ## Function extensibility (area-ext) Env v2: easy addition of dependencies etc. Integration with Service Broker ## Multi-area stuff Execution strategies: cold-start pool vs create-pod-on-cold-start -- one size doesn't fit all, at least with current tech; abstract over execution strategies according to requirements