This repository is the Python Functions Framework, an open-source FaaS (Function as a Service) framework developed by Google Cloud Functions team. It allows developers to write portable Python functions that can run locally, on Google Cloud Run Functions, or on Knative-based environments. The framework provides a CLI to start a local development server (Flask for WSGI or Starlette for ASGI) that invokes user-defined functions. It supports multiple function signatures: HTTP (Flask Request), CloudEvent (CloudEvents SDK), legacy background events (event/context), and typed events with custom data classes. It handles automatic event conversion between background events and CloudEvents, execution ID tracking with logging, request timeout enforcement via threading, and error handling. The architecture is modular with separate components for CLI, function registry, event conversion, execution ID, and HTTP server abstraction (Flask, Gunicorn, Starlette/Uvicorn). The codebase is well-tested with near-100% branch coverage and includes conformance tests against the Functions Framework conformance suite.
This repository is a comprehensive collection of example applications for the Apache KIE ecosystem, specifically Kogito, Drools, and jBPM. It demonstrates how to build cloud-native business automation services using DMN decision models, PMML predictive models, DRL rules, and BPMN process orchestration. The examples are structured as runnable microservices for both Quarkus and Spring Boot runtimes, covering a wide range of capabilities including event-driven messaging with Kafka, persistence with PostgreSQL/MongoDB/Infinispan, security with Keycloak OIDC, monitoring with Prometheus/Grafana, and deployment on Kubernetes/OpenShift. The repository serves primarily as a learning and demonstration resource, not as a production library. It features high duplication across the two runtime stacks, with many near-identical examples maintained in parallel. The code is functional and follows standard Kogito patterns, but the emphasis is on showcasing features rather than providing reusable, production-grade components. Some examples use snapshot versions and older infrastructure configurations, indicating active development but also potential drift.