| # Current Implementation Status |
| |
| This page provides an overview of the current state of the Apache Synapse Go implementation. It highlights the key features that have been implemented and are ready for use. |
| |
| ## Core Features |
| |
| ### 1. Server Setup and Artifact Deployment |
| |
| The Synapse Go implementation provides a robust setup for starting the Synapse server and deploying artifacts: |
| |
| - **Server Initialization**: A streamlined process to initialize and start the Synapse server |
| - **Artifact Management**: Built-in capabilities to load, validate, and deploy various artifacts including APIs, endpoints, sequences, and inbounds |
| - **Configuration Management**: Deployment configurations using TOML format for easy customization |
| |
| ### 2. Package-level Hot Deployable Logging |
| |
| A custom logging solution that offers functionality beyond what mainstream Golang logging packages provide: |
| |
| - **Hot Configuration Updates**: Change log levels and configurations without restarting the server |
| - **Structured Logging**: Support for both structured and traditional logging formats |
| |
| ### 3. File Inbound Endpoint |
| |
| Comprehensive support for file-based integration patterns: |
| |
| - **Multiple Protocol Support**: |
| - Local file systems |
| - FTP (File Transfer Protocol) |
| - SFTP (Secure File Transfer Protocol) |
| - **Features**: |
| - Directory polling |
| - File locking during processing |
| - Configurable polling intervals |
| - File filtering by pattern |
| - Post-processing actions (move, delete) |
| |
| ### 4. HTTP Inbound Endpoint |
| |
| Flexible HTTP server implementation for receiving and processing HTTP requests: |
| |
| - **Protocol Support**: HTTP/1.1 and HTTP/2 |
| - **Methods**: Support for all standard HTTP methods (GET, POST, PUT, DELETE, etc.) |
| - **Path Parameters**: Route pattern matching with parameter extraction |
| - **Query Parameters**: Easy access to query string parameters |
| - **Request and Response Headers**: Full control over HTTP headers |
| - **Content Handling**: Support for various content types including JSON, XML, form data |
| |
| ### 5. API with CORS and Swagger Support |
| |
| Comprehensive API management capabilities: |
| |
| - **REST APIs**: Define and expose REST APIs |
| - **CORS Support**: Configurable Cross-Origin Resource Sharing |
| - **Swagger/OpenAPI**: Automatic generation of OpenAPI documentation |
| - **API Versioning**: Support for versioning APIs |
| - **Security**: Various authentication and authorization options |
| |
| ### 6. Implemented Mediators |
| |
| Core mediators for message transformation and routing: |
| |
| - **Log Mediator**: Configurable logging of message details at various points in the message flow |
| - **Respond Mediator**: Send responses back to clients with control over status codes and headers |
| - **Call Mediator**: Make outbound calls to external services and endpoints |
| |
| ### 7. Endpoint Implementation |
| |
| Flexible endpoint abstractions for connecting to backend services: |
| |
| - **HTTP Endpoints**: Connect to HTTP-based services |
| |
| ## Looking Forward |
| |
| For details on each implemented component, please refer to the respective documentation sections. The following pages provide in-depth information about the architecture and implementation of each component. |