Skip to main content

Posts

Showing posts from December, 2018

Java Vs Golang

Ruby on Rails has an amazing set of features that has aided Freshworks in delivering various product enhancements at a rapid pace. Today, the biggest challenge that we face is scaling the Ruby-based services and keeping up with the exponentially growing customer base. It becomes essential to find an alternative language with good performance that will continue to help us develop features quickly. At this point, while we are trying to break our monolithic code and extract microservices out of it, it feels apt to start considering different alternative languages. Requirements The following are the considerations that we had for selecting the language Comparing use cases RESTful APIs. (Preferably with options to generate server code from Swagger spec) Consuming messages from one of the queues/streams like Kafka, SQS Working with following resources MySQL Consuming and Producing messages from/to Kafka at high volume Consuming and Producing messages from/to SQS Redis Dynam...

JBoss vs. Tomcat: Choosing A Java Application Server

Picking between the various Java application servers can be a challenge for developers who are new to developing online Java apps and Java-based sites. The big three are Tomcat, Glassfish, and JBoss. All of them are excellent platforms upon which develop and deploy applications, but they have different strengths. Making the wrong choice can result in more work than necessary, so we’re going to cut through the confusion with a quick guide to which application server will best suit your needs. In 2013, JBoss received a name change and is now known as WildFly, but the old name is still widely used, especially by those using the older versions, so, we’ll stick to calling it JBoss for the moment. What is JBoss? Developed by JBoss – a subsidiary of Red Hat Inc. – the JBoss Application server acts as an open-source alternative to solutions such as IBM WebSphere and SAP NetWeaver. It chiefly relies upon Sun Microsystems’ Enterprise JavaBeans API for functionality. Like most systems developed o...

A Guide to Streams in Java 8: In-Depth Tutorial with Examples

Overview The addition of the  Stream  is one of the major new functionality in Java 8. This in-depth tutorial is an introduction to the many functionalities supported by streams, with a focus on simple, practical examples. To understand this material, you need to have a basic, working knowledge of Java 8 (lambda expressions,  Optional ,  method references). Introduction First of all, Java 8 Streams should not be confused with Java I/O streams (ex:  FileInputStream  etc); these have very little to do with each other. Simply put, streams are wrappers around a data source, allowing us to operate with that data source and making bulk processing convenient and fast. A stream does not store data and, in that sense, is not a data structure. It also never modifies the underlying data source. This new functionality –  java.util.stream  – supports functional-style operations on streams of elements, such as map-reduce transformations on collections. Let’s no...