The following features are a TODO list of things to do on Particle before launching
We should generate asciidoc documentation for @ConfigurationProperties
This is currently not possible due to type erasure:
@Factory
class TypeConverterFactory {
TypeConverter<String, Integer> typeConverter() {
(string, integer, context) -> {
// do conversion
}
}
}
At compile time we know the types but at runtime the lambda loses type information. We need to add an API to obtain type information for a bean from the factory.
-
We need to allow
Introduction
advise to specify additional interfaces that should be be implemented by the interceptor. -
Allow adding interfaces to non-abstract classes via introduction advise
Need a mechanism for configuration discovery and sharing across the federation. Configuration sharing should initially support:
-
Consul
-
Google Cloud (https://cloud.google.com/deployment-manager/runtime-configurator/reference/rest/)
-
AWS Systems Manager Parameter Store (https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html and Example https://gist.github.com/ariesmcrae/b72aa0f986f87977ffc2de42481c8885)
-
Amazon Route 53 (see https://docs.aws.amazon.com/Route53/latest/APIReference/overview-service-discovery.html)
-
Google Cloud Metadata Server (see https://cloud.google.com/compute/docs/storing-retrieving-metadata?hl=en)
We still need auto-configurations for the following:
-
GORM for MongoDB
-
Apache Kafka
-
Cassandra
We need endpoints for managing and/or exposing information about:
-
logging
-
info
These should be built on the Endpoint
API.
An HTTP gateway that loads on port 8080 and uses the aforementioned HTTP client. The gateway need to be responsible for:
-
JWT Token based authentication
-
Load Balancing
-
Starting Distributed Tracing
-
Retry
-
Rate limiting
-
Route matching on HTTP Request (Path, Method, Header, Host, etc…)
-
Filters to modify downstream HTTP Request and HTTP Response (Add/Remove Headers, Add/Remove Parameters, Rewrite Path etc…)