Engineering: Redesign Elasticsearch/Redis health checks to improve performance of all M2X requests
Engineering: Design & Implement robust & reliable messaging solution between data centers using RabbitMQ
Engineering: Redesign workers messaging and queuing (possibly migrating them from Ost-based queues to RabbitMQ queues)
Engineering: Unify datapoint writer and trigger evaluator queues (avoid queueing each datapoint twice).
Engineering: Optimize datapoint writer worker
Engineering: Adjust number of workers and background processes based on load testing results.
Engineering: Bootstrap logging management system
Engineering: Review logging needs for all app and system components
Engineering: Review & improve logging generation and management
Engineering: Add metrics generation & management for all application & system components (find new alternative to NewRelic)
Engineering: Synchronize developer portal sessions across datacenters
Engineering: Multi-stream data modelling
Engineering: Jobs API
Engineering: Background jobs monitoring interface
Engineering: Refactor all datapoint writing methods to avoid hitting ES (it requires that users, keys and device IDs are all cached in Redis, and therefore it requires RabbitMQ to be able to invalidate caches stored in a different DC). This prioritizes access to writing time series data over any other API methods (performance-wise).
Engineering: Refactor all datapoint writing methods to give the option to the user of checking the status of this operation (i.e. return a Location header along with the 202 response pointing to a url which users can ping to check the status of this transaction).
Engineering: Continue improving deployment workflow
Engineering: Improve device's last activity storage
Engineering: Redesign app settings configuration
Engineering: Automate Elasticsearch templates configuration
Engineering: Cache frequent responses in Redis to improve performance
Engineering: Automate Elasticsearch mappings configuration
Engineering: Extract datapoint writing routes into its own router/microservice