Amino.Run is an open source, multilanguage development platform and distributed runtime environment designed to make distributed applications much easier to design, develop and operate. It is the distributed process runtime component of the broader Amino distributed operating system effort, which also includes subsystems for:
Amino.Run supports most commonly used programming languages and is, by default, deployed and managed in container environments using Kubernetes. Common examples of distributed applications include:
All of these classes of applications share a common set of difficult design and development challenges including performance, distributed concurrency, remote invocation, synchronization, fault tolerance, scalability, sharding, code and data migration, leader election, load balancing, observability, fault diagnosis and many more.
Amino.Run is based on, and extends, several years of research work done at the University Of Washington Computer Systems Lab in Seattle.1,2,3.
Parts of Amino.Run are based on the Sapphire open source project related to the above research, and which is used in compliance with Sapphire's MIT License.
Amino.Run is alpha software, and not yet suitable for production use. We have a well-funded development team actively working on getting it production ready, and actively support contributions from the open source community.
In a nutshell, we created Amino.Run to make design, development and operation of reliable, fast, distributed applications quicker, easier and more fun.
In summary, our approach is to:
Over time Amino will include a runtime process manager (Amino.Run), a reactive distributed memory manager (Amino.Sync), a consistent transactional storage system (Amino.Sync) and a privacy and security framework (Amino.Safe). Initial focus is on making Amino.Run production-ready.
1 Customizable and Extensible Deployment for Mobile/Cloud Applications
2 Diamond: Automating Data Management and Storage for Wide-area, Reactive Applications
3 Building Consistent Transactions with Inconsistent Replication (Extended Version)
4 Not all of these languages are currently officially supported, but they are all on our medium-term roadmap, support based on GraalVM