...
Associated JBoss community project: EAT
Drools - Executable Model Compiler 2.0
Summary of the idea:
Drools is a business rules management system that allows developers and business analysts to write business rules in an easy way and to evaluate such rules in the fastest way possible. With the “executable model” we provided a Java DSL to write such rules in a typesafe way, leveraging the javac compilation to get fast startup time while instantiating the engine. The original DRL (Drools Rules Syntax) language is supported: we provide a compiler to compile the DRL to Java Code.
...
Associated JBoss community project(s): https://drools.org
3scale - Envoy proxy authorization cache
Summary of idea:
3scale is an API management platform that provides API lifecycle management, access control, developer portal, and gateway integration. This project aims to implement an authorization cache locally accessible from Envoy proxy-wasm modules that contains 3scale-specific knowledge to intelligently cache request authorization results in order to minimize request latencies while keeping the 3scale control plane periodically synchronized.
As with many cache implementations, there are trade-offs to be made. In this case we strongly lean towards lower latencies rather than high accuracy, so we can take some design decisions that leverage this fact. The main goal of this cache layer is that it becomes usable locally from proxy-wasm modules, but having it also work standalone deployed as a separate HTTP or gRPC service is a nice extra. Having it return information to the caller so that a proxy can return rate-limiting headers is a requirement. Learning about the 3scale data model and its Service Management API is part of the learning process involved in this project.
References:
- Proxy-WASM: https://github.com/proxy-wasm/spec, talk: https://bit.ly/3a22R5B
- Design document for a similar authorization cache: https://github.com/3scale/3scale-authorizer/blob/master/pkg/backend/v1/docs/README.md
- Rate-limiting headers IETF draft: https://datatracker.ietf.org/doc/draft-ietf-httpapi-ratelimit-headers/
Knowledge Prerequisite:
- Basic Envoy proxy knowledge
- Rust
- gRPC (optional)
- WebAssembly (optional)
Github organization: https://github.com/3scale
Skill level: Intermediate
Contact(s) / potential mentors(s): Alex Martinez Ruiz (amr@redhat.com)
Associated JBoss community project(s): 3scale API Management