Hi Lahiru,

I like the idea. Can you explain how you can contribute to this? And we
need to see whether there are more contributors willing to contribute to
this in case we decide to move forward.

Thank you.

On Thu, Dec 12, 2024 at 7:55 PM Lahiru Madushanka <gdlmadusha...@gmail.com>
wrote:

> Dear Apache Synapse Development Team,
>
> I hope this email finds you well. My name is Lahiru Madushanka, and I’m an
> enthusiastic supporter of the Apache Synapse project. I’m writing to
> propose exploring the use of GO (Golang) in the Synapse project to improve
> its performance and runtime efficiency.
>
> GO, developed by Google, is a statically typed, compiled language designed
> for simplicity, performance, and scalability. Several benefits make it
> worth considering for Apache Synapse.
> 1. Performance and Binary Size Advantages
>
> GO’s compiler generates highly optimized binaries that are compact and
> self-contained, eliminating the need for large dependencies or runtime
> environments. This approach can significantly reduce the size of Synapse’s
> distributable artifacts while improving startup times and memory
> consumption making it container friendly.
> 2. Speed Through Goroutines and Channels
>
> One of GO’s standout features is its efficient concurrency model, centered
> on goroutines and channels. Goroutines allow us to handle thousands of
> concurrent operations with minimal overhead, as they are much lighter than
> traditional threads. This is particularly beneficial for high-performance
> middleware like Synapse, which often deals with multiple simultaneous tasks
> such as routing, message transformation, and integration.
> 3. Backwards Compatibility with Existing DSL
>
> We can design the new system to use the same DSL as the current
> implementation, ensuring seamless backward compatibility. This will allow
> users to migrate to the new system without requiring changes to their
> existing configurations or workflows.
> 4. Maintainability and Developer Productivity
>
> GO’s clean syntax and emphasis on simplicity reduce the cognitive load for
> developers, leading to faster development cycles and easier maintenance.
> Its strong standard library and built-in tools for testing, benchmarking,
> and profiling further support robust development practices. This could
> foster greater collaboration within the community and attract new
> contributors.
> Suggestions
>
> To assess the potential benefits of using Go, I recommend beginning with a
> minimal prototype that includes API support and a few commonly used
> mediators. This will allow us to benchmark its performance and resource
> usage against current implementations.
>
> We can then iteratively expand the functionality in manageable increments,
> ensuring that each addition is carefully optimized to avoid significant
> performance degradation.
>
>
> I understand that introducing a new codebase into the project is a
> significant decision. However, I believe the potential benefits for Apache
> Synapse’s performance, scalability, and developer experience make this
> exploration worthwhile.
>
> Thank you for considering this suggestion. I would be happy to collaborate
> on any initial discussions or prototyping efforts. Please let me know your
> thoughts or if further details are required.
>
> Best regards,
>
> Lahiru Madushanka
>
>

-- 
*Isuru Udana*
VP, Apache Synapse
Member, Apache Software Foundation; http://www.apache.org

*email: isud...@gmail.com <isud...@gmail.com>* cell: +94 77 3791887

Reply via email to