Let your business evolve just like you do!
When you are born, you have no memory of anything but the things you see around you. These things become memories with each passing day. The next day you wake up you have something that you remember from your past. That something can either be your family, friends, the sounds around you, the food you taste, the so called domain objects. It is like someone gave you a command to wake up, observe or do things through the day, remember the same and go to sleep. This is what all of us have been doing and will do throughout our existence.
Keeping the same idea in mind, would it not be awesome if we could have such a technology that lets your business evolve exactly the way you are evolving. Each day your business would receive certain commands, it would be required to save certain details of the past and keep on doing so till it exists.
Well fortunately, we do have something like this available to us at our disposal. Presenting to you Akka, a free and open-source toolkit and runtime simplifying the construction of concurrent and distributed applications on the JVM.
In an alternate setting, you would set up an API(Application Programming Interface) for the world to interact with your business. As long as you have a single customer, everything is hunky-dory. The problem comes when your business scales. The job that your system does with ease becomes a nightmare when it is asked to work at scale. Building a business that serves a host of customers brings forth synchronization challenges. You wouldn't want your customer to be waiting on another customer's work to be finished before he/she could resume the transactions.
Akka simplifies one's life by letting them focus on the problem at hand. It takes care of the concurrency nuances just like the cerebral cortex of the brain. Akka supports multiple programming models for concurrency, but it emphasizes actor-based concurrency, with inspiration drawn from Erlang.
Synonymous to how several people interact with each other, the embedded actors in the toolkit speak to each other via messages. The behavior of an actor is primarily defined by how it handles messages as they are received. Since the state of an actor is isolated from the rest of the system, an actor never has to worry about synchronization issues, such as thread locking, when modifying its state.
When we are small we need supervision to carry out our day to day jobs. Our parents manage our actions, guide us with the action to take under different circumstances and pick us up when we fail. Well just like us systems can also fail(crash!). Akka is built on the very premise of Let it crash!
Where the Actor Model becomes even more interesting is when you combine actors into a supervisory hierarchy. By organizing the actors into a hierarchy, you can have parent actors that manage child actors and delegate computations to child actors. By leveraging the actor hierarchy, it becomes very easy to make an application fault-tolerant and scalable.
We at Wealth Technology and Services Pvt. Ltd., harness the power of Akka together with cloud computing expertise of AWS to let the business expand at scale without the overhead of hardware installation cost and scaling limitations. We let our systems, hosted on AWS servers, process authenticated information through the API and asynchronously react to the requests. The processed request is then presented to the end-user with eventual consistency.