Microservices and Streams are top tendencies of software development where Software developer shows his bests cards and moves to solve computational paradigms, in case I tend to review some papers before start construction, the following papers were very helpful to me this last two moths:
- Cache-Oblivious Priority Queue and Graph Algorithm Applications
- Extended Finite State Machine based Test DerivationStrategies for Telecommunication Protocols
Now, what can I say after having a microservices architecture (in my point of view) in production?, there are two things that I can enumerate, first is memory and CPU cost and the second is Big O(n log n), how many memory consume an application in the server is very important and should measure I must say that 1024 mb are well enough to handle a concurrency of 30 for millions of transactions per minute and design an architecture "to following the sun" keep of using Big O (n log n) that could some of the most important thing in architecture if your tendencies of received users or transactions increase exponentially to be grow up in a horizontal way with very few modifications to layers, component or services in architectures; questions like am I prepared to construct Cloud computing solutions? well, in my opinion taking care of what do you are going to process with an cloud infrastructure that is operated with best design patterns and rules which normally you have to adapt in your current systems and taking care of cost of pay for a piece of hardware that is costed by units, is more effective to first measure your current architecture by taking several reviews to reduce the amount of cost (memory/CPU) and take a catch of how databases and applications are operating, if the conditions of your current operations is not seems well with low scale, perhaps Cloud computing is the correct solution for you by now.
Spring Boot Microservices, Containers, and Kubernetes - How-to: Ray Tsang discusses how to create a Java-based microservice using Spring Boot, containerize it using Maven plugins, and subsequently deploy a fleet of microservices and dependent components such as Redis using Kubernetes.
My opinion is that we are currently living a new revolution of software development where everyone is showing his better work and releases to be adjusted by Distributed Computing and in the look of using Cloud Computing in a carefully measurable way.
Important links: