Web services are the core of modern applications. Developing large sets of web services is laborious, and there are many building blocks which can be made available through a framework.
Modern web service development frameworks address the basic tasks of abstracting away the HTTP protocol, allowing developers to write their code as functions or handlers which are called by the framework. However, a lot more can be done to allow reliable applications to be developed in a time-bound manner.
Most large web applications for enterprise organisations require file and batch processing. This entire sub-system is left to the developer and designer to build. All web service calls need to validate their inputs and format their responses; these are not supported by any utility library. Developers re-invent these layers for every project. This becomes severe when dozens of developers work on large systems and re-implement these basic functions without code reuse.
One specific question not answered by the web service framework is the issue of supporting multiple languages. Strings and text need to be indexed by language and delivered to the user. There are many libraries and tools to help the developer do this, but requires exploration and evaluation.
Alya provides a comprehensive framework to address all of these areas, building on top of the Gin framework for Go developers and Springboot for Java.
Technical Details
Increases developer productivity, reduces errors, for large web applications.
Provides standard templates for input field validations, including integration with industry standard libraries like Googleโs libphonenumber for phone number validation.
Integrates with LogHarbour for detailed logging, with IDshield for authentication and authorisation, and with Rigel for configuration management.
Integrates with Prometheus or ServerSage for logging metrics of web service latency and frequency
Builds on the proven Gin framework for Go developers and Springboot for Java
Strongly supports a specific template for returning error responses with full details and multi-lingual error messages, allowing intelligent processing by responsive front-end applications
Provides a sub-system for processing slow operations which need asynchronous execution, and allows these operations to be distributed across nodes of the application cluster
Provides a sub-system for handling batches of jobs, distributing the individual jobs across the cluster and thus delivering horizontal scaleout. Millions of records may be loaded into an Alya batch and then fired, and the final outputs aggregated as output files.
All the features provide standardised templates which allow large teams of developers to collaborate and develop code as per uniform conventions