Fexco API Technology Landscape: TechRadar 2019-Q1

Just a year ago we mentioned in our Tech Radar a lot of technologies, frameworks and tools in different status. This is the typical scenario in software companies that are looking for new ways in a quest for Quality and Efficiency beyond the old obsolete toxic way of thinking in software factories and some Start Up companies. In other words, a company in the process of modernization. We were moving from a quite traditional position, starting to test and apply new tools and methodologies to get more capabilities and versatility in the technical areas. It’s a effort to retrieve engineering for quality, performance and best practices.

Remember: Software is about Engineering, not only code writing. That’s the reason behind practices and methodologies like Continuous Delivery, SRE, etc.

So, after a year we can say that we are very close to a stable technology landscape. I want to highlight several factors:

Firstly, things like the Spring framework have been removed from our arsenal as it does not meet the minimum required for the performance, versatility and quality metrics we need. Besides, Spring is slowly dying in the community because the lack of freedom and serious restrictions for professional work and therefore restricted to be used in software factories and old-fashion consultancy companies. So, not very glad to meet you and good bye!

Secondly, the Azure services has evolved a lot and we have learned a lot as well about how to use them and what services are not useful to us:

  • Azure CosmosDB (last version) is an amazing storage system. It offers an incredible versatile ecosystem covering MongoDB, Cassandra, SQL. Besides, its features about geo-replication and TTL are really good, getting extremely good performance in queries.
  • Azure AKS is more mature despite the initial problems. We have worked with AKS a lot and it is quite stable and good to us. Dynamic IPs are still providing some headaches, though.
  • Azure Container Registry is not used any longer and Nexus is for us a versatile and trustable container repository.
  • Same for Azure OMS. It was good in the migration to Cloud but we needed to find a much better system to log, store and search our operational system logs. Weĺl talk about it in another post.
  • Azure Databricks has evolved during this year integrating new amd more stable features. Cloud services are maintained in certain ways and we found some issued regarding updates and maintenance. We worked with the Azure and Databricks guys trying to mitigate these problems.

Regarding programming, the binomial Scala/Go is now our standard along with Akka. Nevertheless, we are polyglot and we believe that a good engineer does not depend on a specific language if the engineering is good enough. So, NodeJS, C, Python, etc are included in our landscape.

We have introduced some old stuff that is extremely useful to implement quality procedures purposes. Cucumber to include BDD tests based on Gerkhin syntax and collected from BPMN diagrams. This is a winner combination as it allows us to get the information from Business Analysis, integrating everything into JIRA with automatic processes and then build the BDD tests from the tests scenarios. Again, you can find information here and here.

ANTLR v4 has been introduced as the best option for the making of DSLs and custom languages. A much better option based on parsing rather than runtime reflection.

Spark MLLib and MLFlow has been promoted with some projects in Production and we can say they work pretty well.

Not everything has been a successful adoption. Apache Ignite usage as a memory cache cluster has been finally clunky and difficult to maintain and scale. It is being kept on hold and CosmosDB has shown to be a much better replacement.

That’s all folks. We’ll meet again for our next report. And remember…

Codemotion 2019

Author: Jesus de Diego

Software Architect and Team Lead

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.