Palak Mathur

Ranch Hand
+ Follow
since Jan 29, 2007
Palak likes ...
IntelliJ IDE Java Spring
Plano, TX
Cows and Likes
Total received
In last 30 days
Total given
Total received
Received in last 30 days
Total given
Given in last 30 days
Forums and Threads
Scavenger Hunt
(keep public parts private until JForum day)
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt
Moderation Tools

Recent posts by Palak Mathur

John Carnell wrote:Hi Jesper,

I dont think Spring Boot is obsolete at all.  I know several companies (including mine) that a build a majority of their services in Spring Boot or are adopting it.  Also you have to remember in the end Spring Boot just builds down to a executable jar or war.  You still need a server or container to run service.  For our application we have Spring Boot based services deployed on both standalone AWS servers and in Docker containers.  Since, we let the teams choose their own technologies so teams have chosen to deploy their Spring Boot based applications using Docker.

In my book, I build all of services and the Spring Cloud services using Spring Boot and then deploy the Spring Boot based services using Docker.  In Chapter 10, I deploy all of the Spring Boot-based services that I built into Docker containers to Amazon ECS (Amazon's Docker Container Service).  I do think microservices will become a dominant architecture.  The only real question I see is  whether or not the deployment model of a microservice will change.  Will development teams continue with a server/container model or will more companies deploy their microservices as Functions-as-a-service (e.g. Lambda).  The other wildcard in the mix from a deployment model is UniKernels.  Last quarter, during our semi-annual Hackathon I actually worked on team that deployed a Spring-Boot service using a Unikernel.  A Unikernel is single memory address space with almost no operating system.  Unikernels startincredibly fast and because there is almost no operating system present for the kernel to run have a very small attack surface from a security perspective.


I agree with what John said here. Spring Boot is not going anywhere soon. People are adopting it. We have adopted it too. We are mostly a Java shop and have been using Docker for over 2 years now. Spring Boot fits right in and give us the opportunity to optimally use ECS and underlying EC2 servers.
The question as posed whether we will continue with Docker and ECS model for deploying and running the applications, is a real one. We are trying to measure our footprints and decide what suits our needs. Lambdas are a good contender and we are making a jump toward the same. But still Docker and Spring Boot powered Microservices are going to stay.
5 months ago

Randy Maddocks wrote:

...if you are trying to persuade someone to make an important decision, you want to make it immediately clear why the decision is relevant to their life (or business, or money, whatever the topic is). If people don’t see why something is relevant, they don’t pay attention to the details.

Very true - if I am trying to convince clients how including a certain feature in the web app is critical, explaining the intimate details of the code itself likely wouldn't peak their interest or maybe even win them over. However, telling them that it could save their users half a day's or more work efforts would go a long way in convincing them!

All the best Victor!

Agree cent percent. For us it is critical for business to say yes on certain features and for that it is important that they know the benefits the feature will bring to them and the customers; any benefit to the customer will surely be a huge win.
1 year ago

Victor Yocco wrote:Hi Palak,

Thank you for the question. I believe usability testing is a critical component of informing design thinking. We have an obligation to understand where our users might struggle with our product. We should proactively attempt to address these areas. Usability testing or empathy testing as you have described it is one of the best ways to collect data on these areas. I engage in usability testing as a regular part of my job. I advocate inserting usability testing from the beginning and throughout the product development cycle. You can test anything from wireframes as you mention, to a live product.

How far should one go? That is very subjective. I think you will find value in testing with at least 6 and up to 10 users around a specific set of tasks. You will identify most of the major usability issues. The goal is to try to continually refine the product to the point where only the extreme cases might cause people to struggle. Limitations of time, budget, and technology will always be an issue. My approach to usability testing is do it early and do it often. Make updates based on the feedback. Test again when you have more features or flows developed.

Oh, and try to get a diverse range of users in terms of their expertise and how they might use your product.

How have you used usability/empathy testing in your practice?


We call users from different age groups, gender and economic background. And show them our wireframe. Ask them to carry out certain tasks and ask questions related to same to know their perception of how easy to use the application is. Then we do analysis on the data, update the UI and continue unless finalized the design. The process takes several weeks with different set of people and we pay them for their time. It is easy for my company to pay. However, not so easy for, say, if someone starts a new company.
1 year ago
Hi Victor,

Off late I have observed that Usability Testing has become all the more important. Some of the ways Usability is done is to create wireframes and call actual users to tell you their opinion about it. You ask them to do certain task and see how user perceives the design and note down their thoughts, which for us is also Empathy Testing. I want to know how Design Thinking is evolving over the time and how far should one go with Empathy testing? How far can one go?
1 year ago
Welcome Victor S. Yocco to the Ranch!
1 year ago
First, let us know what do you understand by the term NOSQL?
1 year ago
After having used NoSQL for sometime now, I would prefer Polyglot Persistence over one DB for all needs. Analyze and decide which db suits your needs.
1 year ago

Monica Shiralkar wrote:

wrote Most of the NOSQL DBs like MongoDB provide a querying API. Without a querying API, there is no use of a DB.


How does it apply to the case of HBase?

HBASE comes with its own set of DDL and DMLs. They are not SQL per se but provide a querying mechanism.
1 year ago
Most of the NOSQL DBs like MongoDB provide a querying API. Without a querying API, there is no use of a DB. It doesn't necessarily needs to be SQL queries for all databases. RDBMS needs SQL as the latter is meant to query relational data.

NOSQL dbs are of varied types: Key value, document, etc. and SQL may not be the ideal way to query them all. Hence the need for a different mechanism to query them.
1 year ago
We are a bank and the kind of data we have and number of regulations that number of businesses face, we can't trust anyone with the data. However, we prefer AWS than in-house servers for the sake of ease of infrastructure setup, security offered, and SLA on server uptime. As per CAP Theorem, for a distributed network system, you can't have Consistency, Availability and Performance (CAP) simultaneously. So, there is always going to be a trade-off that you will have to discuss and decide within your team what suits your need and decide accordingly judging the solution on the criteria that best meets your needs.

Lanny Gilbert wrote:
My *actual* question, broadening the original question, is: Does anyone know of a good site or checklist that has something along the lines of "If you need to do <some list of things>, then you should probably use <traditional RDBMS, MongoDB, CouchDB, Cassandra, etc.>?

When we started exploring MongoDB and other NoSQL databases for our project, I came across this post by Martin Fowler about Polyglot Persistence. I hope that this would help you at very high level.
1 year ago

paul nisset wrote:Thanks Palak.
I do use Spring in a lot of projects, so this is very useful info.
Currently,we are using Spring /Hibernate but I should definitely read up on Spring Data.
It is probably more flexible.

If you are using Spring/Hibernate and I assume when you say Spring, you mean Spring Data, then Spring Data MongoDb should be just an extension and is surely worth a try.
1 year ago

Ian Miell wrote:

This is why our book contains a lot of material considered 'impure' Docker - ie not microservices, monolithic and not highly orchestrated 'data centre as an operating system' type work.

Docker helped us turn our monolithic application into a single unit which could be easily shipped for testing or support or dev purposes. We wrote our own simple automation tool to help achieve this - ShutIt

Ian Miell

I think we are also some impure "Docker" work. Some of our stuff is not microservices at all. Docker is really interesting in the opportunities it seem to provide for all sorts of applications.
Docker gives you the opportunity to manage containers like never before. You don't have to worry about underlying platform to provide you an environment for your application to run. You can set docker to configure the container the way you want and carry the same container across platforms - your in-premises network to an EC2 instance. We love docker and are currently running some of our applications in docker and planning to move others to docker as well. It is easy to take a docker container from dev to prod given to understand that all our server instances are on cloud. I would say it may suit for most of your application needs.

Though other use it for microservices, we have gone a step-ahead and used docker to containerize our batch jobs, etc. There are certain things that need to be resolved like security, etc. but other than that docker is certainy a revolution in container automation and deployment adding a new hue to automation.
For Java project, I would recommend using Spring Data MongoDB. It follows POJO centric approach to interact with MongoDB Collection

You just need to add a dependency to your maven/gradle project and rest all is very easy. You can in no time be up and running with Spring Data MongoDB. You can read more about the features here.

If you are using Spring as your bread and butter, then certainly Spring Data is your way to go.

I have also used Jongo library. It is also very simple to use but is not an ORM.

Also, MongoDB Java Driver can be used as well. Again not an ORM.
1 year ago