People and technology are converging like never before, as the world is gripped by COVID – 19. Just a few months ago, nobody could have predicted or foreseen the way businesses are having to work today. As we were strategizing on corporate governance, digital transformation and the best of resiliency plans to ensure business continuity, no one ever anticipated the scale and enormity of COVID 19.
Today, it has become obvious that COVID 19 has brought about the convergence of technology and humanity and how it can change the way businesses work and function. While we as leaders have been thinking largely about business outcomes, this pandemic has triggered a more humane approach, and the approach is here to stay. The humane approach will be the differentiator and will prove the winner.
There is no doubt that this pandemic has brought an urgent need to accelerate our digital capabilities. With the focus on strong IT infrastructure and remote working, workforces were able to transition to working from home, meeting through video conferencing, and surprisingly, this has turned to increase the humane aspect of business relations – it has now become alright for both parties to be seeing children, spouses or pets in meeting backgrounds, and that in itself has broken down huge barriers and formalities. It is refreshing to see the emerging empathy that is getting stronger with every meeting, and increasing collaboration and communication. It is becoming increasingly clear that we have overlooked the important factor of how it is that people have been showing up to work. Suddenly it is now more visible that people have equally strong roles within the family – when we see parents having to home-school their children, or having other care obligations, we are viewing their personal lives and are able to empathize with them more. We are seeing the impact that business can have on people and their personal lives and this is a never like before opportunity for leaders to put our people first.
And with customers being the center of every business, the situation of not being able to do in-person meetings has now warranted newer ways to collaborate and further strengthen the customer-centricity initiatives even more. It has become evident that no matter how much we as leaders are thinking of automating operations, it is human connections that run businesses successfully. Lots of things have been unraveled – Important business imperatives like criticality of clean workspace compliance, the fact that offshoring thousands of miles away is not factually a compromise, but a very cost-effective and efficient way of getting things done. Productivity has also increased, and work done this far by, has a positive impact of at least 20% or even more in certain situations. As boundaries and barriers are broken, the rigidities of who should work on something and when they should work on it have all become less rigid. Employees are less regimental about time. Virtual crowd outsourcing has become the norm – you throw an idea at a bunch of people and whoever has the ability and the bandwidth to handle the task takes care of it, instead of a formal task assignment, and this highlights the fungibility of people.
All in all, the reset in the execution processes and introducing much more of a humane approach is here to stay and make the new norm even more exciting.
About the Author –
Balaji has over 25 years of experience in the IT industry, across multiple verticals. His enthusiasm, energy, and client focus is a rare gift, and he plays a key role in bringing new clients into GAVS. Balaji heads the Delivery department and passionately works on Customer delight. He says work is worship for him and enjoys watching cricket, listening to classical music, and visiting temples.
The COVID-19 outbreak has established the importance of digital
readiness during pandemics. Building the necessary infrastructure to support a
digitized world is the current mandate.
Technology has advanced much in the past century since we were hit by the Spanish Flu pandemic in 1918, and it plays a crucial role in keeping our society functional. From remote working to distance learning, and from telehealth to robot deliveries, our world is set to witness a lasting change post this pandemic.
As with other major and minor events of the past few years, social media is playing a big role in shaping people’s perception of the ongoing pandemic. Not just that, the social media platforms have also contributed to spreading information/misinformation, helping people cope with the strange times, and raising awareness about some pressing issues.
Media and the pandemic: The Good!
Social media is one of the most effective ways to share news nowadays (it may be the only way for some people), especially if you are trying to alert the masses quickly. First-hand accounts of those who were infected and recovered were available almost in real-time. Scenes of lockdowns from the countries that first imposed it gave us a heads-up on what was due to come. If only we’d paid more heed to it.
With most of the world stuck at home, our mobile devices have
increasingly become the go-to option to connect with the outside world. Social
media usage has surged during the lockdown, with various apps witnessing a
manifold increase in their traffic.
From educating to entertaining, social media platforms have stepped up as well. Movie and video streaming apps have redefined movie/video watching behavior by introducing features that allow users to host long-distance movie nights with friends and family.
We also witnessed a surge in various ‘online challenges’ that
people could do in their homes and upload online. While some may view them as
naïve, experts claim these are part of the various coping mechanisms for
Social media surfing has gained a significant share in the pie of leisure activities. Be honest, how many of us living alone are doing anything but scrolling these apps in our free time? But thanks to the social media ‘influencers’, scores of us are being motivated to workout at home, eat healthily, pick up a book, or learn something new.
Posts from health workers and others on the frontline have also
helped spread the word on the difficulties they’re facing and rallied efforts
to help them.
Online solidarity has spilled over offline as well. People are
taking to social media to offer support in any way they can, such as picking up
groceries for those who are unable to leave home or sharing information on how
to support local businesses who are struggling. Communities are rallying
together to support organizations and individuals by opening fundraisers to a
Media and COVID-19: The Bad
Unfortunately, the impact of social media has not been all good. News on social media spreads fast, fake news even faster. Misinformation can cause panic, and can even turn out to be fatal on health issues. As a practice, we should all do a bit of research and validate the information from ‘reputed sources’ before sharing it.
This next bit is more of a tip…Whether it’s a business or a personal profile, you should refrain from posting anything that makes fun of, ridicules, or trivializes the situation. Not only is that insensitive, but it could also spell trouble for you, especially as a business.
The ‘influencers’ have been found guilty of misusing their power
and taking advantage of the situation. Various inauthentic posts had gone viral
before being pulled down. Do social validation and fame know no limits?
It is true that people often turn to social media as a stress-buster, but experts say it is equally stress-inducing for some individuals. It is important to note here that we’re also in the midst of an ‘infodemic’ – an anxiety-triggering over-abundance of information.
It is easy to overlook, especially now, the devastation that mental health issues cause globally. Studies have reported an increase in mental health issues attributed to social media in recent years. Psychologists say the lockdown will only add to that. Needless to say, mental health has a bearing on physical health as well.
Anti-rich sentiments have also gained momentum in the past weeks,
as the pandemic makes the class divides glaringly obvious.
From the transparency that we have gained through this current COVID-19 situation, we now understand that we were not prepared to handle it. Many developed countries have had their health systems overwhelmed, those on the frontlines are being overworked and even the most advanced nations are stumbling to get their economies back up. The next pandemic is not a matter of “if it happens”, but “when it happens”.We need to be prepared at an individual and collective level. Indeed, technology has advanced and will continue to advance exponentially, but institutions and societies need to accelerate in adapting to it and continue investing in building the technology systems for the preparedness.
About the Author –
Prabhakar is a recruiter by profession and cricketer by passion. His focus is on hiring for the infra verticle. He hails from a small town in Bihar was brought up in Pondicherry. Prabhakar has represented Pondicherry in the U-19 cricket (National School Games). In his free time, he enjoys reading, working on his health and fitness, and spending time with his family and friends.
This article explores the offering of
the various Java caching technologies that can play critical roles in improving
What is Cache Management?
A cache is a hot or a temporary memory buffer which stores most frequently used data like the live transactions, logical datasets, etc. This intensely improves the performance of an application, as read/write happens in the memory buffer thus reducing retrieval time and load on the primary source. Implementing and maintaining a cache in any Java enterprise application is important.
The client-side cache is used to temporarily store the static data transmitted over the network from the server to avoid unnecessarily calling to the server.
The server-side cache could be a query cache, CDN cache or a proxy cache where the data is stored in the respective servers instead of temporarily storing it on the browser.
Adoption of the right caching technique and tools allows
the programmer to focus on the implementation of business logic; leaving the
backend complexities like cache expiration, mutual exclusion, spooling, cache
consistency to the frameworks and tools.
Caching should be designed specifically for the environment considering a single/multiple JVM and clusters. Given below multiple scenarios where caching can be used to improve performance.
1. In-process Cache – The In-process/local cache is the simplest cache, where the cache-store is effectively an object which is accessed inside the application process. It is much faster than any other cache accessed over a network and is strictly available only to the process that hosted it.
If the application is deployed only in one node, then in-process caching is the right candidate to store frequently accessed data with fast data access.
If the in-process cache is to be deployed in multiple instances of the application, then keeping data in-sync across all instances could be a challenge and cause data inconsistency.
An in-process cache can bring down the performance of any application where the server memory is limited and shared. In such cases, a garbage collector will be invoked often to clean up objects that may lead to performance overhead.
In-Memory Distributed Cache
Distributed caches can be built externally to an application that supports read/write to/from data repositories, keeps frequently accessed data in RAM, and avoid continuous fetching data from the data source. Such caches can be deployed on a cluster of multiple nodes, forming a single logical view.
In-memory distributed cache is suitable for applications running on multiple clusters where performance is key. Data inconsistency and shared memory aren’t matters of concern, as a distributed cache is deployed in the cluster as a single logical state.
As inter-process is required to access caches over a network, latency, failure, and object serialization are some overheads that could degrade performance.
2. In-memory database
In-memory database (IMDB) stores data in the main memory instead of a disk to produce quicker response times. The query is executed directly on the dataset stored in memory, thereby avoiding frequent read/writes to disk which provides better throughput and faster response times. It provides a configurable data persistence mechanism to avoid data loss.
Redis is an open-source in-memory data
structure store used as a database, cache, and message broker. It offers data
replication, different levels of persistence, HA, automatic partitioning that
Replacing the RDBMS with an in-memory
database will improve the performance of an application without changing the
3. In-Memory Data Grid
An in-memory data grid (IMDG) is a
data structure that resides entirely in RAM and is distributed among multiple
Parallel computation of the data in memory
Search, aggregation, and sorting of the data in memory
Transactions management in memory
Cache Use Cases
There are use cases where a specific caching should be adapted to improve the performance of the application.
1. Application Cache
Application cache caches web content
that can be accessed offline. Application owners/developers have the
flexibility to configure what to cache and make it available for offline users.
It has the following advantages:
Quicker retrieval of data
Reduced load on servers
2. Level 1 (L1) Cache
This is the default transactional
cache per session. It can be managed by any Java persistence framework (JPA) or
object-relational mapping (ORM) tool.
The L1 cache stores entities that fall under a specific session and are cleared once a session is closed. If there are multiple transactions inside one session, all entities will be stored from all these transactions.
3. Level 2 (L2) Cache
The L2 cache can be configured to provide custom caches that can hold onto the data for all entities to be cached. It’s configured at the session factory-level and exists as long as the session factory is available.
Sessions in an application.
Applications on the same servers with the same database.
Application clusters running on multiple nodes but pointing to the same database.
4. Proxy / Load balancer cache
Enabling this reduces the load on application servers. When similar content is queried/requested frequently, proxy takes care of serving the content from the cache rather than routing the request back to application servers.
When a dataset is requested for the first time, proxy saves the response from the application server to a disk cache and uses them to respond to subsequent client requests without having to route the request back to the application server. Apache, NGINX, and F5 support proxy cache.
5. Hybrid Cache
A hybrid cache is a combination of JPA/ORM frameworks and open source services. It is used in applications where response time is a key factor.
Caching Design Considerations
1. Data Loading/Updating
Data loading into a cache is an
important design decision to maintain consistency across all cached content.
The following approaches can be considered to load data:
Using default function/configuration provided by JPA and ORM frameworks to load/update data.
Implementing key-value maps using open-source cache APIs.
Programmatically loading entities through automatic or explicit insertion.
External application through synchronous or asynchronous communication.
2. Performance/Memory Size
Resource configuration is an important factor in achieving the performance SLA. Available memory and CPU architecture play a vital role in application performance. Available memory has a direct impact on garbage collection performance. More GC cycles can bring down the performance.
3. Eviction Policy
An eviction policy enables a cache to ensure that the size of the cache doesn’t exceed the maximum limit. The eviction algorithm decides what elements can be removed from the cache depending on the configured eviction policy thereby creating space for the new datasets.
There are various popular eviction
algorithms used in cache solution:
Least Recently Used (LRU)
Least Frequently Used (LFU)
First In, First Out (FIFO)
Concurrency is a common issue in enterprise applications. It creates conflict and leaves the system in an inconsistent state. It can occur when multiple clients try to update the same data object at the same time during cache refresh. A common solution is to use a lock, but this may affect performance. Hence, optimization techniques should be considered.
5. Cache Statistics
Cache statistics are used to identify the health of cache and provide insights about its behavior and performance. Following attributes can be used:
Hit Count: Indicates the number of times the cache lookup has returned a cached value.
Miss Count: Indicates number of times cache lookup has returned a null or newly loaded or uncached value
Load success count: Indicates the number of times the cache lookup has successfully loaded a new value.
Total load time: Indicates time spent (nanoseconds) in loading new values.
Load exception count: Number of exceptions thrown while loading an entry
Eviction count: Number of entries evicted from the cache
Various Caching Solutions
There are various Java caching solutions available — the right choice depends on the use case.
At GAVS, we focus on building a strong foundation of coding practices. We encourage and implement the “Design First, Code Later” principle and “Design Oriented Coding Practices” to bring in design thinking and engineering mindset to build stronger solutions.
We have been training and mentoring our talent on cutting-edge JAVA technologies, building reusable frameworks, templates, and solutions on the major areas like Security, DevOps, Migration, Performance, etc. Our objective is to “Partner with customers to realize business benefits through effective adoption of cutting-edge JAVA technologies thereby enabling customer success”.
About the Author –
Sivaprakash is a solutions architect with strong solutions and design skills. He is a seasoned expert in JAVA, Big Data, DevOps, Cloud, Containers, and Micro Services. He has successfully designed and implemented a stable monitoring platform for ZIF. He has also designed and driven Cloud assessment/migration, enterprise BRMS, and IoT-based solutions for many of our customers. At present, his focus is on building ‘ZIF Business’ a new-generation AIOps platform aligned to business outcomes.
COVID-19 taught all white-collared workers and their employers one thing for sure – “It is possible to work from home”. With the current advancements in technology – using a mobile app-based contact center solutions, using collaboration platforms to edit content together, hosting tech troubleshooting bridges where multiple engineers solve an issue, video conferencing meetings allowing people to see each other, from where work is delivered does not matter anymore.
Wearing what feels comfortable, sitting comfortably, eating homemade food, personalizing your room, life was never better balanced between work and personal life better than now. With nobody to micromanage, the only way to measure a worker is through outcomes. Attendance swipes are a thing of the past. People managers who have no idea of the work done by their team members will become redundant starting2020. New digital companies will take over like a storm to embrace this opportunity, just like AGILE took over like a religion to manage software development projects.
Existing digital workforce companies are already providing opportunities for companies to hire talent who can work remotely on a need basis from around the world and save potential hiring costs and free from commitments. Just like Uber and Lyft transformed the taxi business, we could see a wave of disruption transforming and killing the traditional brick and mortar IT behemoths to more agile and digital workforce capabilities hiring top talent on the click of a mobile app, and being able to get talent requirements fulfilled in minutes instead of having to wait for weeks or months to get somebody to join. This will be like the DevOps of Hiring for managers who have new projects and budgets looking for people to get things done.
Every other aspect of the business has changed, reducing time to market, and hiring talent is the only area still very traditional and inefficient. It’s not too late for somebody to realize and use this uncertain economic environment as a cradle of opportunity to offer enterprises as a solution.
The next question that comes up is if the borders are removed, how do you secure and still be compliant with your compliance norms. This is completely dependent on the level of sensitivity of data to which an employee/contractor has access. From using privacy screens in the laptops to using technology like VDI, SaaS-based EDR, NGAV, unified agents, CASB’s, you have literally every control that you can think of on-premise that you can enforce in a laptop used by an employee.
When companies hire you in the future, they will ship you an asset to your home location and expect you to use that asset for work. When you have moved out, you will be sent return shipping on which you can put the asset and send it back.
Another main setback that prevented a revolution is that IT companies had to pay for bench talent to provide for the demand. This will also be disrupted by new entrants. New disruptors will be willing to share up to 70% of the revenue earned by somebody back to them, but if there is a loss of billable revenue, the same will be immediately passed on to the concerned employee. These measures will weed out people who are just not meant for the IT workforce that demands constant skill up-gradation, essentially leaving IT to only the high potential workers who are dynamic.
About the Author –
Hariharan is the global head of Cybersecurity at GAVS. He is responsible for strategic and tactical leadership around emerging technologies such as cloud transformation, cloud-native microservices development, software-defined networking, cloud security, DevOps Security, Security and Automation, Security & AI.