Authored by Akhil Pillai, Principal Engineer, WaveMaker, Inc
The web has been a unique platform to develop applications for decades. Of late, platform-specific applications have created a lot of buzz, mainly owing to their reliability and extensive features. Some of them work offline, some have hardware capabilities while some of them can notify users of important updates. PWAs or Progressive Web Applications are the web’s newest attempt at matching the level of reliability and richness that these native applications offer.
Progressive Web Apps are just plain old web applications with newer capabilities enabled on modern browsers using progressive enhancement. That is, even if the modern features are not supported by the browser, the user still gets the core experience of a web app. PWAs make use of web-platform features like service workers and manifests to give users an experience on par with native apps.
Some of the features that PWAs offer are:
PWAs allow users to install them through prompts that are either on the browser or implemented by the developer. Once installed, they mimic native apps that are available on home screens, docks, or taskbars. The application opens up as a different window rather than as a tab in a browser and is shown as part of the app switcher, thus tightly integrating it with the platform.
Speed is crucial to keep the user interested and reduce bounce rates. Google's research shows that an increase in page load times from 1 to 10 seconds leads to a 123% increase in bounce rates. The capability of PWAs to cache resources and load them from the cache greatly increases speed and performance. This not only helps with load times but also helps when the network is slow or there is no network at all. This means even when offline you have access to your favorite application unless network connections are indispensable.
Being a web application, PWAs can be easily shared using URLs. Anybody with a URL can install a PWA on any platform with a supported browser. This greatly reduces the effort it takes to distribute an app through an app store. Managing versions are made easy too with auto-updates or prompted updates that allow partial updates. With this feature, gone are the days when we had to download entire applications for just a small change in text.
One of the biggest flexes that native applications had over web applications is the ability to push updates to the user. Though web applications could show notifications, they needed to be running in a window to do so. PWAs have overcome this hurdle through service workers. A service worker is a piece of code that runs in the background even after the web application is closed by the user. This allows the web application to run background tasks and receive notifications. This makes it easy to keep the user engaged even when the application is not running.
PWAs are inherently secure. The service worker, which is the core part of a PWA, is only activated if the connection is secure. If the connection is not established over a secure HTTPS protocol, PWAs behave just like normal web applications.
Though these are some of the main features that PWAs offer, there is much more to them like background sync and hardware communication among others.
Most of the features directly or indirectly affect the way users interact with web applications. This in turn drives business decisions. For example, giving a native feel to a web application is made easier with PWA. This allows businesses to ship applications faster while skipping app stores and their complex policies. PWAs while reducing development effort also reduce the associated development cost. Faster loading times give a big boost to customer retention while notification capabilities keep the user engaged.
In terms of data supporting these tall claims, let's take the case of Twitter. Twitter saw a 65% increase in pages per session, 75% more Tweets, and a 20% decrease in bounce rate. Nikkei saw 2.3 times more organic traffic, 58% more subscriptions, and 49% more daily active users. Hulu replaced their platform-specific desktop experience with a Progressive Web App and saw a 27% increase in return visits. As they say, numbers don't lie. PWAs are definitely influencing customer interaction with applications.
PWAs combine the native feel of platform-specific applications with the dynamic nature of web applications. But how do we implement all these features? Using vanilla JavaScript and HTML to implement such rich features would take a lot of time and effort. Of course, libraries like Angular and Workbox can help but WaveMaker goes a step further. With the latest 10.9 release, PWA is officially in its beta stage on WaveMaker. All the user has to do is enable an ‘app.pwa.enabled' flag in the profile they use for production. Detailed instructions of PWA app can be found here.
WaveMaker uses Angular’s built-in support for PWA and throws in a bit of its own magic to enable these features. As soon as the flag is enabled, two of the most prominent features are baked right into the WaveMaker web applications - installability and caching. Notifications are also enabled by default that can be made to work with a few app-specific changes. WaveMaker also allows the user to choose a custom icon for the installable app. What better than having your brand image in your user’s app drawer!
At WaveMaker we realize that continuous improvement and innovation is the path to creating customer satisfaction. As of now, PWA features that are in the beta stage are subject to continuous improvement. The way forward is to enhance features like notifications and to gradually add features dictated by customer interests.
PWAs are here to stay and WaveMaker will help your business embrace the technology with as little code as possible.
Watch this video to know more.
Akhil Pillai is a full-stack developer with more than 10 years of experience in software development. He is a technology enthusiast and a polyglot with a soft spot for machine learning. In his free time, he loves to read technical content and listen to music.
Mankind and the systems that it relies on are in a constant state of flux. From the transportation systems we travel in, to the medicines we take, evolution has been a constant phenomenon in human life. If that were not so, we would still be stuck in stone-age. Development tools are no different. From low-level languages like COBOL to high-level languages like Java and Python, coding has evolved to make application development easy. Similarly, IDEs are constantly evolving to make the developer’s life easy. From text editors to GUI-based IDEs to IDEs that even autocomplete your code, development environments have come a long way. Low code is the next eventual milestone.
Hi! I am Sagar Vemala, from Hyderabad, India and I work for WaveMaker, Inc. After completing my engineering course, I joined WaveMaker as an intern where I was introduced to low-code development and I found the concept of converting ideas into products rapidly; absolutely fascinating! I had an offer in hand to join a reputed technology company as a developer even before I was offered an internship at WaveMaker, but I must say that the internship introduced me to a whole new world of application development and I decided to stay. When I started as a full-time developer at WaveMaker, I was warned by my peers about being labeled as a ‘low-code developer’ but my gut instincts told me that I was making the right decision. Looking back, am glad I stuck to my decision. A low-code developer’s job is not restricted to simple coding, it is an expansive sea of learning, of thinking outside the box and more importantly, it is a job that solves a problem.
In this context, I would like to share my experiences from my journey, clear some misconceptions and present my point of view about my career as a low-code developer. Here are a few pertinent questions that I get asked about low-code:
I learned Java on notepad++. While it is the best way to learn Java, it is not necessarily the best way to develop faster. Seeing me code on a text editor, my friend introduced my novice self to the Eclipse IDE and it is there that I was introduced to the world of GUI IDEs with cool features like generating import statements, getters, and setters methods automatically.
My ‘world of coding’ just became so much more flexible.
The first time I saw how WaveMaker worked, it was déjà vu--Once again a complicated process had been made so much easier. My life as a developer is made ‘easier’ by WaveMaker. Here is how:
WaveMaker has a real code-behind approach and allows full customization and extension on every level. I consider WaveMaker as an advanced IDE (RAD) which generates open standards-based code following best architectural practices. It offloads monotonous tasks like setting up the project and environment, managing framework, and library upgrades and allows me to focus on the problem at hand. Also, it helps developers by providing configurational code for standard features like multi-language support, security, and scalability. With all that being taken care of by WaveMaker, I can focus on areas where my knowledge and experience are needed, like solving requirements and writing business and integration logic.
Absolutely not! I see myself as a problem solver and not just as a developer. I get to work on so many layers of technologies, right from designing the DB schema to preparing the backend to composing the UI and deploying the app.
In a traditional setup, this would require a large team of dedicated backend and front-end developers working for months to build an app. In today’s world, there is an imminent danger of irrelevance by the time an app is developed. With WaveMaker, a small team does the job in weeks that would traditionally take months and as a plus, I get to dip my toes in every kind of technology.
As development became more agile and the time frame became shorter, I got to work on many applications across different domains. At times, I would digest requirements directly from the client. With total control over development at all layers, I was able to provide accurate estimates. After observing diverse apps getting built, I started to think about another important aspect of development--user experience. This skill that I picked up while using low-code helped me deliver applications even without the help of a business analyst or a user interaction designer. My learning outside just coding, sky-rocketed.
I also got the opportunity to work with DBAs, senior developers, technical team leads, and architects of various enterprises as a WaveMaker SME. All apprehensions about not being ‘technical enough' disappeared after my conversations with them and I believe that I was able to add value to decisions that are agnostic of WaveMaker.
In a nutshell, the horizon of my learning expanded.
Circling back to the point of learning, let’s elucidate with an example. Let’s say, a ‘traditional’ JavaScript developer has just started learning Angular. If the said person follows the documentation of a ‘to-do’ app and merely replicates the steps without understanding the intricacies of how Angular is helping, will the person be able to actually ‘learn’ and contribute to projects? No, right? The same logic applies here as well. There is learning in any sphere of creation. Developers who aspire to work with WaveMaker low-code need to use or will learn the below-mentioned skills to understand WaveMaker generated code and make the best use of it.
I strongly believe that low-code may not be a hammer for every nail but is a necessary tool in the developer kit. Enterprises have and will adopt this methodology into their practices for years to come. Digital transformation has become ubiquitous with every enterprise and if an enterprise is looking at ways to create safe, scalable, and modern products with faster go-to-market, low-code is a safe bet. According to Gartner, the low-code development market is predicted to reach a worldwide total of $13.8 billion in 2021. In fact, the demand for low-code developers has been rising exponentially.
After having worked for WaveMaker for more than 5 years, I find myself with an abundance of choice and skills. I have the skills and knowledge to go the full-stack way, I can lead teams of low-code developers, I can be a solution architect, or I can choose to use low-code for hybrid development. There is a myriad of opportunities and options available. You only have to choose.
Finally, I think I chose the road less taken, even though opinions around me were not as positive about low-code, as they are today, I feel I made an interesting choice that fueled a unique career for me, and that has made all the difference.
Sagar Vemala has been with WaveMaker since 2015 and has implemented several customer projects as part of the professional services team. He has built a variety of API-driven applications in workforce planning, inventory management, finance and insurance. If you are developing an application and plan to use low-code, Sagar can share best practices using WaveMaker. Write to him at info@wavemaker.com
Tech-savvy users are swiping left aggressively and swiping right selectively. No, we are not talking about dating apps. We are talking about how quickly the customers of today are changing their banking preferences. Loyalty is a fickle emotion. As Jeffrey Gitomer says “You don't earn loyalty in a day. You earn loyalty day-by-day", by responding to the customer's needs every single day. Otherwise, they just move on.
How responsive banks are to the changing needs of the customer will now decide their longevity. Or else, it’s a swipe left for sure.
With so much at stake, what can banks do to retain their customer’s loyalty?
Going digital is an obvious answer, but then everyone is doing it. Every bank of repute has a digital face--some, more advanced than others. What spruces up the relationship between the customer and the banking app is the customer journey. It is all about how the relationship started and how it sustains--the qualities that keep the customer engaged, the features that make a banking app sticky. So what are the features in a banking application that entices customers, and how does the WaveMaker low-code platform help?
Though a banking application may not necessarily be composed of all of the above, it should at the very least be provided compatible platforms that enable the development of these features leading to the creation of a composable banking app. So the question one may ask is, does WaveMaker as a low-code platform support the integration of these features into a composable banking app?
The answer is a resounding yes!
A developer working on WaveMaker can take two approaches:
One, use the built-in prefabs to quickly conjure up a banking-specific component.
Two, integrate third-party banking components into the application.
This is helped by two factors:
WaveMaker allows seamless collaboration of ecosystem partners with ease--the foundation of a composable banking architecture. It helps banks, BaaS players, fintech, and ISVs respond to what customers ask for--modern experiences, intuitive interfaces with stunning visual components, security, smooth onboarding, and device-agnostic feature-rich applications. WaveMaker with its API-first approach, prefabs, support for all major databases, and vault-like security with VeracodeTM certified code has all the qualities to broker a long-lasting partnership with the bank and the customer with agility.
Banks can expand the reuse of legacy core banking, offer services to brands as a BaaS player, or launch greenfield initiatives; with WaveMaker, the possibilities are endless.
So, this time when the user swipes right, banks can swipe right back at them!
Swipe right to know more about WaveMaker
*Watch this space for our next article on our banking software components
By Vikram Srivats, Vice President, WaveMaker
Enough has been said and written about the effect of the pandemic in hyper-accelerating the shift to digital – for enterprises and consumers alike. This is one widely accepted fact we can note and move on from.
The combination of low-code development and BaaS APIs are enabling more companies than ever to add banking services to existing apps and products
However, another rising wave has been afoot for a few years now – something that Bain Capital Ventures (BCV) thinks is far greater than the Internet, Cloud, and Mobile combined (yes, you read that right) – with a projected market value of $3.6 trillion by 2030. BCV heralds this wave as the Fourth Platform: financial services in an embedded (or integrated) form within technology-driven businesses.
Andreesen-Horowitz (a16z) and CB Insights talk about this being the banking industry’s “AWS moment”, with new Banking-as-a-Service (BaaS) players offering all (or parts of) the banking stack as-a-service for a new crop of fintech and tech-driven brands. a16z further predicts that every company will become a fintech company – embedding finance across digital and traditional brands – by leveraging offerings from BaaS providers.
Embedded finance and BaaS are two sides of the same coin. Brands and fintech offer embedded financial services to consumers and businesses while BaaS providers are the suppliers and enablers for those brands and fintech.
Two trends collide to form one massive opportunity
With the pandemic driving a tectonic shift to online, virtual, and instant gratification, embedded finance allows brands and disruptive new financial products to gain and delight customers, increase share-of-wallet and create stickiness. From a customer standpoint, the financial experience is in the moment, contextual and seamless within the brand experience – to the extent that the finance is almost invisible.
For example, think of Apple – which now offers a credit card backed by Goldman Sachs – or Shopify – going above and beyond by offering embedded payments, balance accounts, and loans to aspiring e-commerce businesses. With the likes of Amazon, Google, Doordash, Chime and Affirm, the list of embedded finance and BaaS-powered use cases and players is growing rapidly.
This growth is primarily fueled by a whole slew of capable BaaS players – Synapse, Treasury Prime, Stripe, Marqeta, Bond, Finastra, Railsbank, Solarisbank, Unit, Galileo, BBVA Open Platform, GPS, and many more – offering differentiated and compelling technical and financial propositions. These BaaS players in turn have partnerships with one or more banks and offer APIs (sometimes a single API) for a brand or fintech customer to call and access the offered financial service via the API.
In a way, things have come full circle – from the software powering financial services (core and engagement platforms) at FIs, we now have banking subsumed into software and offered via APIs.
BaaS APIs are becoming the new currency in the world of financial services
With this BaaS revolution going on in the background, the low-code market has grown exponentially, with more than 100 platform providers – with different specializations – competing for market share.
Microsoft, Mendix, OutSystems, and ServiceNow are some of the leading players while there are specialist challenger firms more focused on specific personas (professional developers, citizen developers, and business process users) and target areas (apps, workflow, automation, analytics, and so on).
To say that low-code adoption was propelled further by the pandemic is an understatement. Whether for businesses urgently wanting to digitally transform or for more advanced corporations, low-code has comfortably hit its stride as a new paradigm in software development.
Now, with over 2,000 fintech launched in 2019, the rise and maturity of BaaS offerings and differentiated embedded finance use cases/opportunities, and a world where APIs rule, developers are now the first customers of the banking and financial services capability stack.
Brands and fintech, banks and third-party software developers, independent software vendors, and system integrators need to find, attract, hire, train, mentor, motivate, manage and drive world-class development teams to deliver business outcomes.
They must do all this in the face of non-trivial challenges:
A breed of developer-friendly, open, API-driven, modern, enterprise-grade low-code platforms could be the answer. Here is how:
In 2020, Microsoft cited research predicting that more than 500 million new apps will be built in the next five years, which is more than the total number of apps built in the last 40 years, even as companies struggle to find software developers. According to KPMG, despite the overall market softness in H1 2020, H2 rebounded and saw almost $72 billion in fintech investment (across PE, VC, and M&A deals). Klarna, Revolut, and Chime raised mega rounds north of $500 million each. KPMG goes on to predict that embedded finance will emerge as the *new North Star* in fintech.
Low-code development layered on BaaS APIs may be embedded finance’s hockey stick moment
Embedded fintech and low-code development are massive scale markets in their own right. The next 1,000 or 10,000 fintech, FIs, and brands that deliver embedded financial services will need to be laser-focused on their customers and business to compete and win. Agility, automation, and reuse will underpin composable enterprises and personalized experiences, and modern, powerful low-code platforms already are delivering complex, compelling and contextual experiences for discerning development and business teams globally.
To further explore banking solutions by WaveMaker, please view our exclusive BFSI offerings here.
Or, start a conversation with our expert consultants for solutions to your unique requirements.
Originally published in Fintech Futures
WaveMaker 10.8 brings capabilities and features that harness the power of artifacts and prefabs on the WaveMaker low-code platform--especially for teams. Prefabs are custom widgets that can be reused across projects within a team. With this release, the platform consolidates its strength on prebuilt software components by making collaboration across teams faster and easier to manage.
WaveMaker continues to enable enterprise IT teams, ISVs, and all stakeholders to co-create value faster and better with low-code.
Artifacts are reusable components that can be developed and maintained independently. Various components such as prefabs, project shells, template bundles, and themes come under the umbrella of artifacts on the WaveMaker low-code platform. V10.8 allows the sharing of a central repository of artifacts in teams promoting collaboration between team members.
Team members can view a list of all available artifacts providing clear visibility. Developers have complete access to the repository of available components and are free to choose the artifact version that suits their requirements best. This in turn makes activities such as documentation, maintaining change logs, and version control of artifacts a seamless process.
With 10.8, developers creating and using artifacts across teams and projects can manage their workflows seamlessly. Consider a scenario where a developer publishes an artifact and waits for approval from the team admin. The admin can then review the artifact on the team portal and approve the same, making it accessible for all developers to use or reject it and send it back with changes.
Not just that, the same prefab or artifact can be versioned multiple times with each version visible to all team members. Developers can search and view available prefabs under projects, teams, or system prefabs and import specific versions into the projects.
Different projects can use different versions of the same prefab with a scope for upgrading. Developers can choose versions that suit their requirements with the help of changelogs and get real-time notifications of newer versions. Minor patch updates on prefabs can be published independently using branch support. Development teams can update patches and upgrades seamlessly without disrupting the existing environment and projects.
For ISVs, having access to the latest versions of artifacts is of great value. This allows for both forward and backward compatibility with respect to prefabs with minimum disruption. With every new update, WaveMaker continues to bring developers together, fostering collaboration, and helping them build powerful applications.
To know more about WaveMaker 10.8.0, please read the release notes here.
Create, publish and consume APIs effortlessly with WaveMaker low-code platform
Digital transformation is no longer a buzzword. It has become a way of life for enterprises that want to stay in business. In the current post-pandemic era, business maturity is being evaluated in terms of digital maturity. The road to digital adoption has many emerging technologies in force but working silently behind the scenes and aiding this rapid acceleration, is the unseen ‘super glue’ of all business services - Application Programming Interfaces (API). Technically, APIs have been around for two decades at different levels of operability but it is only in recent years that there has been an explosion of sorts in the usage of APIs.
The demand for multichannel experiences and the everything-on-cloud approach has accelerated the use of APIs. Whether it be composable architecture or microservices, APIs enable the kind of business collaborations that were unheard of before. The partnering of transportation services with a bank, retail shops with payment apps, and banks offering investment opportunities, loans, currency transactions, and payment services on an e-commerce platform have all been made possible by the growth of APIs. Similarly, offloading certain business tasks to ecosystem partners and liberating internal services from silos has been fueled by the synergy between APIs.
API-driven development is the practice of designing and building the API contract first and then developing the application around the contract. Also, known as the API-first approach, this paradigm involves the front-end developers building mocks around APIs and creating refined end-user experiences. In parallel, the back-end developers implement the underlying logic of the APIs.
Dedicated test suites are created around these APIs and, in a way, they foster the idea of test-driven development. In an API lifecycle, the API Publisher designs and deploys the API whereas the API Consumer discovers and integrates the APIs. Each of these roles has multiple functions associated with them and those functions define the characteristics of the API.
WaveMaker is an open standards-based, developer-centric low-code platform built for modern development practices. The platform enables app developers to play the role of an API Publisher and API consumer. The platform has a natively integrated component called the API Designer which is used to ease the process of designing, creating, and consuming APIs.
WaveMaker offers an API-driven development platform with:
A developer-friendly low-code platform abstracts the complexities of API management and provides UI-based connectors to work on the endpoints without having to hand-code. WaveMaker scores high on effortless API creation and management with an API-driven approach and an in-built API designer. The platform’s inbuilt adherence to the rules of the API game and its innate ability to convert any service as an API makes the job of all stakeholders so much easier.
APIs have become an inherent part of software building. Programmableweb (API directory) had a listing of mere 54 APIs in 2005. Today there are close to 24000 APIs listed there, and this is excluding the internal enterprise-level APIs and the ones that haven’t been made discoverable yet. Fuelling this expansion are tools and platforms that help us design, manage, test, produce, and consume APIs. Rapidly, easily and securely.
Start your free WaveMaker trial today
Imagine your enterprise architecture, not as a collection of disparate business processes with some loosely defined interdependencies, but as a neatly fit, well composed, well maintained, synchronized set of autonomous and API-driven Packaged Business Capabilities (PBC). Each process fitting into another like a well-thought-out jigsaw puzzle. What’s more, the scope for adding more such processes is unlimited and the pieces to the puzzle are interchangeable. Such a modular architecture makes it possible for each of these PBCs to have separate life cycles of its own which can then be deployed, tested, and reused causing minimum disruption.
If this visualization evokes your interest, welcome to the world of ‘composable architecture’.
PBCs are in fact, products by themselves either built in-house or by SaaS vendors or best of breed application factories. According to Gartner, by 2023, 30% of applications will be sold as PBCs.
A composable approach to application development helps businesses deliver the needed solutions at the pace of modern business change. - Louis Vistola, Devops.com
CIOs are using composability to tackle disruptions - pandemics, natural disasters, market fluctuations, and changing customer needs. Composable architecture brings several benefits to the composable enterprise concept, specifically the agility and innovation to respond to changing business needs. It reduces the need to build configurability reducing complexity and thereby reducing the QA cycles. Other than the possibility of unlimited scaling, it also focuses on shortening the gap between IT and business, bringing deep personalizations based on roles, and the ability to build new business models.
As organizations move towards digital transformation, the low code plus composable combination offers maximum flexibility, delivering value at greater speed. - Elizabeth Wallace, RTInsights.com
Low-code is built on the premise of visually composing applications and services with the help of built-in components. Therefore, a low-code platform like WaveMaker becomes a plausible choice for the rapid development and integration of PBCs. However, where, in the journey of building a composable architecture does a low code platform play its part?
Depending on the size and affordability of the enterprise, a low-code platform can don many hats.
The list is exhaustive.
A low-code development platform like WaveMaker comes with an innate plug and play approach, and can do a lot of heavy lifting for an organization looking at composability. Let’s see how.
Application Programming Interface (API) management market size is set to
grow from USD 1.2 billion in 2018 to USD 5.1 billion by 2023
Application Programming Interfaces(APIs) are the catalysts in creating a well-composed architecture. PBCs expose their functionalities using APIs. When all processes within an enterprise are API-enabled, developers and business collaborators can access them seamlessly to suit their needs resulting in faster delivery and increased composability. All communication across enterprise applications is streamlined with the help of APIs.
WaveMaker enables an API-driven app development approach. The platform extends its capabilities beyond just publishing, wrapping, and sharing APIs within the enterprise, by also enabling partners and third-party developers to consume APIs vital to their business. Representational State Transfer(REST) APIs are autogenerated for any application that is created on the WaveMaker low-code platform. For every service that is imported on the platform whether it be database, Java, SOAP, or a third-party service, an API is auto-generated. This enables easy composability of critical services like databases and third-party functionalities into the application canvas and the larger ecosystem of applications. The platform has a feature called ‘API designer’ where all APIs available to the application can be viewed, tested, and customized.
Wavemaker is also OpenAPI Specification 2.0 (OAS) compliant and extends the functionality of OpenAPIs by integrating REST endpoints in a Web/Mobile application. Once a REST endpoint is generated, it can be easily integrated with any of the 100+ UI widgets available on the platform without the hassles of hand-coding. What’s more, applications within the enterprise can talk to each other.
All platform-generated APIs deliver enterprise-grade security, OAuth capabilities, and users are provided with fine-grained control over the usage of APIs.
Within the WaveMaker studio, “Prefabs” are customizable, reusable, distributable, components/widgets that help in accelerating digital app development. ‘Prefabs’ are the building blocks that enable composable architecture through WaveMaker. These groups of components are gathered in the Design-Toolbox within the WaveMaker Studio. More than 100 prefabs covering a wide range of features cater to different use cases throughout the product. Every enterprise customer owns an artifact repository of components that can be as granular as a UI widget or an entire workflow such as a Loan application microapp.
Similar to an application, prefabs have their own development cycle - a prefab is developed, tested, and deployed independently. Additionally, it can be retrofitted to suit varying business scenarios and repurposed. In fusion teams, Prefabs can be created by developers and can be consumed by non-developers (business users and citizen developers) to exponentially accelerate development. WaveMaker users can just gather (drag and drop) the necessary prefabs from the enterprise repository and then compose an entirely new application with the centralized built-in module.
You can find a detailed article on prefabs here.
“The golden rule: can you make a change to a service and deploy it by itself without changing anything else?” - Sam Newman, Building Microservices
Microservices are known for their composability, but are microservices akin to PBCs? A PBC is composed of several microservices and in some cases, a microservice can act as a PBC providing a tangible business capability. Therefore, the ability to support microservices is a crucial tenet for a low-code application development platform that enables composable architecture.
Since REST APIs are auto-generated in WaveMaker, Microservices are inherently supported. Some of these APIs are available for further customization based on the app integration needs and as Sam Newmann says, the primary benefit of using microservices is that you can change and deploy a service with minimum disruption - An important principle when it comes to composability.
Integration of features and modules happens more often at the customer experience layer. Micro Frontends, in the microservices world, is a scalable design practice that enables users to produce composable independent modules which can serve in building a new app or progressively integrate features to an existing app. WaveMaker is the only low-code platform to support Micro Frontend modules extending rapid development benefits to Micro Frontend development. It adopts the runtime integration approach for Micro Frontends & works with the Single-spa framework.
WaveMaker also enables seamless deployment of business services into the choice of infrastructure. Enabling business services as individually versioned microservices makes the entire CI/CD process effortless leading to what we call Zero DevOps.
Low-code platforms and composable architecture share a symbiotic relationship. They have shared goals namely agility, velocity, collaboration, and the ability to build powerful applications that can be plugged into the enterprise ecosystem without disruption. Technical tools and platforms that allow enterprises to pivot and adapt rapidly are the need of the hour. Composable architecture requires the ability to utilize several modern technologies such as API enablement, reusable software components, support for REST and SOAP services, modern CI/CD technologies combined with microservices (Kubernetes), multi-cloud enablement, and data protection.
WaveMaker is an open low-code platform that delivers all these and more.
Enabling composable architecture with custom-built software components
In WaveMaker, ‘Prefabs’ are customizable widgets that enable composable architecture. They are reusable, distributable, and independently testable micro applications that can be dragged and dropped into any WaveMaker project. They cover a wide landscape of operations and are present in the enterprise repository of every customer. As of now, the WaveMaker studio contains more than 100 different prefabs ready to be plugged into any application canvas of choice.
Prefabs can be rendered for diversely different business scenarios and can be reused by multiple teams within an enterprise. They can emulate commonly used components like ‘Location Indicator’ or can even abstract independent business workflows like ‘Account Management. Prefabs are ideal for blended teams consisting of business users and IT developers within the enterprise
Composable architecture is the ability to create applications with prebuilt software components. It is akin to creating a Lego model. Similar to the model, software components interlock with each other to create a larger artifact – the application. Just like a model, a singular component can be removed, repurposed, or fit elsewhere to suit the changing needs. What’s more, new blocks(read components) can be added to the model to make it larger and stronger. Prefabs are the Lego ‘building blocks’ of the WaveMaker platform. These components could be as fine-grained as a ‘list box’ or as macro as an entire workflow. What’s important is that these various components can be easily placed into the application canvas with seamless synchronization. Simply put, the components can talk to the application. Prefabs are not just abstractions in UI format, they are also components with characteristics and behavior. One that can be easily integrated with the help of exposed methods and events. This plug-and-play model of orchestration is made possible by their respective REST APIs. During application deployment, WaveMaker resolves all prefab dependencies and deploys the app as one single component onto a Docker container. As the application expands, further prefabs can be added to the canvas ensuring scalability and flexibility.
Prefabs can be effectively used to talk to complex API calls. This can be done by abstracting these calls with a UI layer in the form of a prefab. A business user then can simply drag and drop the prefab into their WaveMaker project and set custom properties to suit their application. Their behavior is invoked by the associated events or method calls. From OAuth APIs to third-party widgets, prefabs come to the rescue by encapsulating the complexity in a UI shell.
Developers can create custom component repositories solely for use in a single application (application repository). Additionally, an enterprise can create a custom prefabs repository, one that contains software components customized to their brand. Independent contributors can even publish prefabs to the general repository of the platform that can be reused across enterprises.
Third-party widgets can be repurposed as prefabs on the WaveMaker platform. This can be done easily by just importing the widget-specific files to the platform and then abstracting it with a UI element to create a completely new component. They can further leverage the extended features of the external widgets to customize it even further. Popular prefabs like YouTube, GoogleMaps, Docusign, and QRCode ship with WaveMaker. Additionally, OAuth services for Facebook, LinkedIn, Instagram are rendered through prefabs on the WaveMaker platform. A similar repository for WaveMaker Online is currently being developed.
A multitude of benefits follows the usage of prefabs. Reusability, encapsulation of functionality, scalability, speed of composition, building blocks of composable architecture, and consistent quality are some of the given advantages. WaveMaker customers, especially ISVs and core software builders use prefabs for easy customization and faster implementations.
In the banking & financial software world, prefabs can be domain-specific and an extremely crucial asset to deliver differentiated brand experiences to banking customers. For instance, general workflows such as loan repayment, account management, transaction management, and user management can be developed as prefabs in the enterprise repository which can then be retrofitted into custom banking solutions.
At WaveMaker, we understand the dynamics of the market in terms of the need for speed and differentiated brand experiences. Prefabs enable composable architecture, faster go-to-market, and hyper customization to empower core software builders developing modern applications and platforms.
You can find a detailed guide to prefabs here.
Click here to start your free trial with WaveMaker Studio
The UI layer in itself can be composed of multiple widgets available in the WaveMaker repository which are bound to the corresponding backend services repository. A prefab, just like any other widget exposes its properties, methods, and events which can be configured or invoked respectively. Once created, all the user needs to do is drag and drop it into the application. The developer can then customize it further if the use case demands. In some cases, prefabs can be used only as a UI component with no APIs involved.
Let’s take the FB post (FaceBook) prefab (provided as default) in WaveMaker studio as an example. This prefab has a UI layer that is used to accept inputs from the user. The inputs are posted as a message on the user’s FB wall. The message, in turn, is sent through REST APIs to the backend business logic which communicates with the Facebook server to post the message. Once created, the same prefab can then be reused across any application within an enterprise for the same use case.
A prefab is also a powerful way to abstract the many layers of complexity associated with API consumption. Consider talking to OAuth authentication, comprehending signature, parameters, security, and understanding the syntax and semantics- a lot of which can be overwhelming for application builders, especially those from a non-development background.
A prefab makes the job easier by abstracting these complexities and providing a simple interface to the user. For instance, if not for the FB post prefab, one would have to directly connect to the Facebook API, increasing complexity and time for development. Instead, all the developer needs to do is drag and drop the FB post prefab and then bind the necessary data to it. With this ready-to-use prefab, the complexities of the API layer are abstracted and presented in the form of UI components that can be further consumed by exposed properties, methods, and events.
What’s more, an enterprise can create a custom prefabs repository with a standardized look and feel that can be reused across applications that are built in the WaveMaker ecosystem.
Customization is not restricted to internally available widgets. If one needs to use a third-party widget, all that the user needs to do is to import the widget’s necessary files into the platform and bind them to a UI element thus masking it in the form of a prefab. Developers can leverage extended features of external widgets, or build an entirely new UI element by integrating with 3rd party libraries. The ability to create prefabs and to take a component-based approach helps slash development times and promote reusability among remote teams.
Disaggregate and aggregate. That is the idea behind composable architecture. Disaggregate into simpler business components across your development platform and aggregate only the ones that you need to build your application. Breaking down the complexities of an application into its business components and then composing new applications with relevant components leads to delivering new functionalities faster for business users, customers, and all stakeholders.
It is all ‘Plug and Play’.
Prefabs in WaveMaker enable composable architecture by allowing users to drag and drop custom business components onto a larger application canvas and integrate them with their respective REST APIs. Applications can then be built as stackable layers of prefabs. In fact, a prefab can contain another prefab thereby creating a tier of layered apps. All the REST APIS in the prefab can also be published for sharing and consumption by other applications. During application deployment, WaveMaker resolves all prefab dependencies and deploys the app as one single component into a Docker container. As the application and its needs grow, development teams can cater to that growth by adding or reusing corresponding prefabs providing further scalability.
Prefabs can be published solely for an application (application repository), in the general artifact repository of an enterprise, or for public consumption on the WaveMaker platform (requiring admin approval). Popular prefabs like YouTube, GoogleMaps, Docusign, and QRCode ship with WaveMaker. Additionally, OAuth services for Facebook, LinkedIn, Instagram are rendered through prefabs on the WaveMaker platform. A similar repository for WaveMaker Online is currently being developed.
A multitude of benefits follows the usage of prefabs. Reusability, encapsulation of functionality, scalability, speed of composition, building blocks of composable architecture, and consistent quality are some of the given advantages. WaveMaker customers, especially ISVs and core software builders use prefabs for easy customization and faster implementations.
In the banking & financial software world, prefabs can be domain-specific and an extremely crucial asset to deliver differentiated brand experiences to banking customers. Imagine just having to drag and drop an entire workflow or process in the form of a widget from a central repository of banking components. One that can be customized and rendered based on locale, style, and brand. WaveMaker customers use prefabs to create custom-made banking solutions for their clients. For instance, general workflows such as loan repayment, account management, transaction management, and user management are developed as prefabs in their enterprise repository which can then be retrofitted into custom banking solutions.
Prefabs enable composable architecture, faster go-to-market, and hyper customization. At WaveMaker, we understand the dynamics of the market in terms of the need for speed and differentiated brand experiences. Continuous enrichment of our prefabs repository is a consolidation of our efforts in enabling enterprises and core software builders across the globe.
By Mayur Shah, Senior Director – Product Management, WaveMaker
The low-code market is seeing meteoric rise across the world, as companies try to keep up with digitization demands and shrinking IT budgets. Even as we witness increasing low-code adoption among professional as well as citizen developers, an intriguing question comes to mind – What lies ahead for low-code, and could it ever become a mainstream approach for modern development teams?
The answer may well be an open source, low-code platform that offers high productivity, while supporting seamless integration with the overall fabric of modern software development practices within an enterprise.
It’s feasible to assume that low-code will evolve to become open low-code, resulting in greater innovation and agility.
To further understand what this means, let’s dive deeper. What are open systems?
According to Wikipedia, open systems are computer systems that provide some combination of interoperability, portability and open software standards.
Over the years, the software industry has seen great benefits from designing, implementing and consuming open systems. TCP/IP protocol standards, UNIX systems, Web browsers, REST APIs – all of these are shining examples of open standards that went on to become highly successful and widely adopted. By remaining open, they enabled higher interoperability, streamlined development and fostered rapid innovation.
Low-code is now at a critical stage in its adoption curve. For the last few years, we have seen citizen developers successfully execute shadow IT with low-code and churn out applications at a breathtaking pace. Today, low-code platforms are hardened for enterprise use, are programmed to understand the scalability and security needs of a complex application and have integration capabilities mature enough to seamlessly fit in with existing tools and technologies. As a result, we are now seeing greater adoption of low-code within the professional development community, covering a diverse set of use cases from simple dashboards to complex applications. The natural next evolution of low-code is that it becomes mainstream within enterprise IT, and is used to build mission-critical applications and systems. So, how does this next phase play out for application development?
The approaches and techniques of modern software development teams has changed dramatically to meet the demands of modern, software-enabled business. Developer velocity and organizational agility have become key benchmarks for high performing software development teams, as those metrics have a direct correlation with software excellence and superior business performance. According to a research report by McKinsey, teams that belong to the top quartile with regards to developer velocity score have 60% higher total shareholder returns and 20% higher operating margins. Such teams can experiment faster and release code to production without delays.
As application teams continue to embrace low-code for mainstream development, it is vital that low-code platforms support developers so they are encouraged to employ modern application development and delivery best practices. Low-code should introduce minimal disruptions to a developer’s working practices and workflow. Also, it is important that low-code can integrate seamlessly with the fabric of the overall enterprise application architecture. This can happen if a low-code-platform is open standards-based and flexible so that the rest of the enterprise application infrastructure can coexist with it.
Developers like control, flexibility and a unified experience. They find comfort in sticking to their preferred languages, tools and application development and delivery workflows. A low-code platform that offers productivity with equal flexibility, with a focus on building robust enterprise architecture, is bound to be the future of application development. Platforms should focus on providing a unified developer experience across concept, design, integration, development and deployment stages of the app life cycle, employing a technology stack that is modern, best-of-breed and cloud-native. It’s equally important to provide a way for developers to easily bring any external innovations into the low-code platform.
Many low-code platforms do not generate 100% of an application’s code. Also, most of the code generated by proprietary platforms is also proprietary, and quite often remains hidden and not easily accessible or extensible. A platform that generates open standards-based, real code is a great asset, especially for professional developers building complex applications that require extensive customization and deep integration with enterprise tooling (security, testing, debugging, integration etc.). The code generated should be based on developer-friendly, best-of-breed application stacks and standard design patterns. This way, application teams will have complete familiarity with and understanding of the code. Enabling full export of the code allows teams to own the code created by the platform.
The application architecture should be loosely coupled, supporting microservices and micro front ends that can be independently built, deployed and scaled. This way, architecture can support cloud-native application development easily. Also, all other aspects of the application life cycle should allow for plug-and-play capability. This includes, but is not limited to, plugging in custom UI components (widgets, templates), custom security providers, custom back end code, logging frameworks, event driven systems, etc. A plug-and-play model ensures that development teams can integrate custom providers that are fine-tuned for the enterprise.
Modern application development practices have evolved to allow teams to experiment faster and release code to production at a never-seen-before pace. Optimizations in performance and scalability have resulted in applications that can support millions of end users. As developers warm up to low-code, the platforms should align with and implement all modern development practices while building applications. The idea is to minimize friction in a developer’s journey towards low-code, so that they continue to leverage the same design principles, application tooling and enterprise integrations as they do in the complex programming world.
Developers need a way to continuously deploy software so there is always a version of the application ready for production. Low-code platforms should support an IaC option, so code generated is always deployable seamlessly on the developer’s infrastructure of choice. Platform should integrate to build, test and release systems (version control systems, CI/CD, artifact repos, container image repos, Kubernetes clusters and public or private cloud instances, for example). This way, artifacts built by low-code are continuously integrated and deployed to the enterprise’s operational systems.
Low-code is at an inflection point within enterprises, as it becomes the platform of choice for digital transformation and application modernization. This is the opportunity for low-code platforms to become a key ingredient of an enterprise application architecture. An open low-code approach will allow application development teams to benefit from the underlying best practices prevalent within the organization.
Low-code is not merely a productivity tool; it has the potential to be a technological and cultural catalyst that drives enterprise innovation and business agility.
Originally published in DevOps.com