News AggregatorCHAR vs. VARCHAR: What's the Difference?Aggregated on: 2022-08-21 03:21:53 If you've found yourself in the MySQL space even for a little while, you already know that MySQL and other flavors of it offer a couple of data types for developers to choose from. A wide majority of the most popular data types offered by MySQL are related to text — in this space, MySQL offers VARCHAR, CHAR, TINYTEXT, TEXT, and other options. In this article, we are going to go through the similarities and differences between two of some of the most popular options: the aforementioned VARCHAR and CHAR. What Is CHAR and VARCHAR? Before diving deeper into the differences between the two data types, we must first make you understand what they are, right? Well, everything in this space is pretty simple because the names of the data types themselves suggest what they are able to do — CHAR stands for "character values" and VARCHAR stands for "variable character values." View more...Supabase and Svelte Quickstart GuideAggregated on: 2022-08-20 21:21:53 This example provides the steps to build a simple user management app (from scratch!) using Supabase and Svelte. It includes: Supabase Database: a Postgres database for storing your usage data. Supabase Auth: users can sign in with magic links (no passwords, only email). Supabase Storage: users can upload a photo. Row Level Security: data is protected so that individuals can only access their own data. Instant APIs: APIs will be automatically generated when you create your database tables. By the end of this guide you'll have an app that allows users to log in and update some basic profile details: View more...Level up Your Engineering Management Skills: Why You Should View Your Mistakes as ‘Misses’Aggregated on: 2022-08-20 20:51:52 As an engineer, you might have learned the basics from textbooks or watched a series of tutorials. Managing engineers is different and isn’t something that can be mastered by simply reading a book. View more...Hardware-Accelerated OpenGL Rendering in a Linux ContainerAggregated on: 2022-08-20 17:21:52 This article will show you how to solve the problem with remote display on Windows when rendering with hardware OpenGL acceleration in a Linux container. The problem occurred in a real project that I had the opportunity to implement with my team for one of our clients. As you will see in a moment, we have successfully resolved it. Today, you can learn from our experience. What You Will Find Here This document is intended to give a deeper understanding of the underlying technologies to set up a Linux server with an X window system to display the graphical user interface of applications running in Docker containers. A remote display on a Windows computer is assumed. View more...Spring Data JPA Interview Questions and AnswersAggregated on: 2022-08-20 12:21:53 Spring Data JPA is one of the most popular starters used in Spring-based applications. If we look at GitHub statistics, we'll see that developers use Spring Data JPA in more than 900K projects. Compare it with 165K for Spring JDBC, and it becomes obvious that in many tech interviews developers face questions on Spring Data JPA and related technologies. In this article, we will take a look at the most popular Spring Data JPA interview questions. Also, we'll discuss underlying technologies – JPA and Hibernate. First, there will be some basic questions on general knowledge, and then we'll review advanced topics. View more...How To Connect a Heroku Java App to a Cloud-Native DatabaseAggregated on: 2022-08-19 19:36:52 Ahoy, matey! I'm back from a short vacation and ready to continue my pet project: geo-distributed messenger in Java! If you’re interested in how my dev journey began (and is going), check out the previous articles in this series: View more...Renaming Tables in SQL ServerAggregated on: 2022-08-19 18:36:52 Renaming a table in a database is one of the most common tasks a DBA will carry out. In this article, you will see how to rename tables in SQL Server. Depending upon the client application that you use to manage your SQL Server, there are multiple ways of renaming tables in SQL Server. Some of the ways involve text queries while the other ways allow you to rename tables in SQL Server via GUI. View more...An Easy Way to Get Your Own Binary RepositoryAggregated on: 2022-08-19 16:51:52 A Binary Repository Manager (BRM), according to Wikipedia, is “a software tool designed to optimize the download and storage of binary files used and produced in software development”, such as .jar, .tar, or .zip archives. Being a critical component of most DevOps toolchains, BRM resides right after the build pipeline. It is why it is sometimes called “build repository”, “artifact repository” or “pipeline state repository”. A traditional DevOps pipeline expects the source code that is automatically validated, tested, packaged, and versioned into an artifact (a binary file). Then, the artifact must be stored outside of the source code repository and available for later stages of the continuous delivery pipeline. Being a central point for management of binaries and dependencies, and an integrated depot for building promotions of internally developed software, the BRM is supposed to host these artifacts. View more...A Review of Popular IoT Communication ProtocolsAggregated on: 2022-08-19 16:06:52 Opting for the wrong IoT communication technology will drain your connected devices of power, cause delays in data transfer, open security loopholes, and render the whole setup a failure. According to IoT Analytics, a market research company, there were 11.7 billion IoT connections in 2020 globally, and this number is expected to swell to over 30 billion by 2025. As the Internet of Things adoption continues to grow, it’s important to carefully consider how to connect cyber-physical systems in an optimal way and avoid signal interference. View more...Multi-Cloud Strategies Using Microservices ArchitectureAggregated on: 2022-08-19 16:06:52 This is an article from DZone's 2022 Microservices and Containerization Trend Report.For more: Read the Report In 2005, Dr. Peter Rodgers addressed micro web services during a presentation at a Web Services Edge conference, where the first generation of micro web services was based on service-oriented architecture (SOA). SOA is a "self-contained" software module that performs as a task, and this allows the service to communicate based on SOAP (Simple Object Access Protocol). The main SOAP idea is, "Do the simplest thing possible." View more...Building Scalable Streaming ApplicationsAggregated on: 2022-08-19 15:51:52 DataStax has recently released its Astra Streaming, enabling developers to build streaming applications on top of an elastically scalable, multi-cloud messaging and event streaming platform powered by Apache Pulsar. This article will walk you through a short demo that will provide a great starting point for familiarizing yourself with this powerful new streaming service. Here’s what you will learn: View more...Selenium Test Automation— Critical Things to Avoid When Writing Test ScriptsAggregated on: 2022-08-19 15:06:52 Automation testing plays a significant role in overcoming the shortcomings or drawbacks of manual tests, plus broadening the scope for extra layered testing. Current studies have forecasted that the progress of the Global Test Automation market to hit USD 109.69 billion by the year 2025, which means that QA testing is growing and evolving rapidly. The influence of Selenium Testing is such that it has become a game-changer in the Quality Assurance and Software Testing world. Automated test has become more demanding as the high level of accuracy that is accomplished is saving loads of time for the testing team as well. Besides, automated testing empowers enterprises or businesses by boosting their software quality and making the entire tests process more reliable, faster, and resource-efficient. Selenium is one of the top lists in the testing arena because of its plentiful advantages. It has contributed to loads in bringing this exponential transformation in the testing world and continuous development and delivery procedure. Testing automation with Selenium has quite become popular with ongoing developments in Machine Learning and Artificial Intelligence. It has initiated noteworthy transformations by opening up numerous unprecedented avenues in test automation. View more...How Pro-Coders and Low-Coders Can Find Common GroundAggregated on: 2022-08-19 14:51:52 The Search for Faster, More Affordable App Development In my work within the mobile app development industry, I've witnessed a significant evolution in recent years. More line of business professionals are building apps than IT teams. Everyone across the business is now seeing the potential of building an app to streamline their work and respond to market threats and opportunities faster. They want to use low-code solutions to collect, share and analyze more business data on mobile devices. While low-code app development can deliver the efficiency and savings these business leaders hope for, it's important leaders realize the ongoing need for traditional coding and experienced developers within their organizations. Traditional coding remains important in modern organizations. View more...Software as a Service: How to build a SaaS ApplicationAggregated on: 2022-08-19 13:51:52 Software as a Service (SAAS) is the ideal business model for online companies. It facilitates the retrieval of data directly from the server, eliminating the need for users to acquire their copies. SaaS development companies offer incredible chances for startups and small vendors to grow their enterprises. Typically, SaaS solutions are pretty adaptable. Customers are compelled to adopt this service due to the simplicity of cloud-based technologies. View more...Smart Contract Head to Head — Ethereum vs. FlowAggregated on: 2022-08-19 12:21:52 Since the introduction of smart contract technology, Solidity has been the coding language of choice for smart contract developers. However, if you’re a Solidity developer, you already know it has drawbacks. Among other flaws, major security concerns can arise from the simple mishandling of certain data types, and there are no built-in access controls. View more...Troubleshooting Microservices OutOfMemoryError: MetaspaceAggregated on: 2022-08-19 03:51:52 Recently we confronted an interesting java.lang.OutOfMemoryError: Metaspace problem in a microservice application. This microservice application will run smoothly for the initial few hours, but later it will start to throw java.lang.OutOfMemoryError: Metaspace. In this post, let me share the steps we pursued to troubleshoot this problem. Different Types of OutOfMemoryError JVM memory has the following regions: View more...Can You Avoid the Git ‘Fatal: Refusing to Merge Unrelated Histories’ Error?Aggregated on: 2022-08-19 03:21:52 One of the most common Git errors, "fatal: refusing to merge histories" occurs when there is an attempt to merge unrelated projects in one branch. This happens because the pull request or clone is not compatible with the commit histories and tags of a branch. Resolving this error is not that difficult, though. The causes that lead to this problem and the solutions for it are presented below. The more intriguing question may be, would it be possible to stop this error from happening in the first place? View more...Webhooks in MuleAggregated on: 2022-08-19 02:51:52 What Are Webhooks? A webhook is a lightweight API that powers one-way data sharing triggered by events. In other words, webhooks are automated messages or triggers that an application sends whenever a desired event occurs. For example, say there’s a movie information application. We need to know whether any new movie has been released recently. In case of API implementation/polling, we need to keep making requests to the movie application to know the details at any point of time. Even if there are no new movie releases, we need to be sending requests to the application again and again to keep checking for new releases which is redundant. View more...Processing of Streaming Data: Kappa vs Lambda ArchitecturesAggregated on: 2022-08-19 02:21:52 Data is quickly becoming the new currency of the digital economy, but it is useless if it can’t be processed. The processing of data is essential for subsequent decision-making or executable actions either by the human brain or various devices/applications, etc. There are two primary ways of processing data: namely, batch processing and stream processing. Typically batch processing has been adopted for very large data sets and projects where there is a necessity for deeper data analysis. On the other side, stream processing is used for speed and quickness as soon as data gets generated at the source. In stream processing, a data point or “micro-batch” is inserted directly into the analytical system bit-by-bit as soon as it is generated and processed subsequently to produce key insights in near real-time. By leveraging platforms/frameworks like Apache Kafka, Apache Flink, Apache Storm, or Apache Samza, we can make decisions quickly and efficiently from generated key insights after processing the streaming of data. (In my previous post "Crafting a Multi-Node Multi-Broker Kafka Cluster- A Weekend Project," read more on how to install Apache Kafka.) Before developing a system or new infrastructure at the enterprise level for data processing, the adoption of efficient architecture is mandatory to ensure software/frameworks are flexible and scalable enough to handle the massive volume of data with an open design principle. In today’s Big Data landscape, the Lambda architecture is a new archetype for handling the vast amount of data. This architecture can be adopted for both batches as well as stream processing of data as it is a combination of three layers namely batch layer, speed or real-time layer, and service layer. Each layer in the Lambda Architecture relay on various software components. View more...Scheduled Tasks With Hyperlambda and RetryAggregated on: 2022-08-18 20:51:51 Scheduled tasks imply repeatedly executing some piece of code according to some interval. Adding retry implies retrying execution until it succeeds. Creating scheduled tasks with Hyperlambda is extremely easy. Making sure your tasks execute using retry logic is slightly more complex, but it's quite easy once you understand the flow of things, and you learn some basic Hyperlambda. To understand our code, we'll need to analyze some of the core Hyperlambda slots first. Hyperlambda Is Async to the Bone The above implies that Hyperlambda consumes tiny amounts of operating system resources while it's waiting for tasks. If you invoke [http.get] to retrieve some data from another server, the thread your Hyperlambda is scheduled to run on is actually suspended and released back to the operating system. This allows your operating system to "reuse" threads for different tasks, resulting in your app as a whole can accept a lot more throughput. Your app scales much better as a result. View more...Using Embedded Milvus to Instantly Install and Run Milvus With PythonAggregated on: 2022-08-18 20:51:51 Milvus is an open-source vector database for AI applications. It provides a variety of installation methods, including building from source code and installing Milvus with Docker Compose/Helm/APT/YUM/Ansible. Users can choose one of the installation methods depending on their operating systems and preferences. However, there are many data scientists and AI engineers in the Milvus community who work with Python and yearn for a much simpler installation method than the currently available ones. Therefore, we released embedded Milvus, a user-friendly Python version, along with Milvus 2.1 to empower more Python developers in our community. This article introduces what embedded Milvus is and provides instructions on how to install and use it. View more...7 Practical Reasons Why Software Testing Is Imperative to the Development CycleAggregated on: 2022-08-18 20:21:51 Thorough testing is critical to the development of any software product. It can cost companies order of magnitude much more to fix a bug in the wild than if they’d caught it early in development. These bugs cost money, lose customers, and tarnish your brand. Trust in your brand is critically important in B2B software; users depend on you to pay their employees. This is one reason software testing is necessary before your business app launch. View more...Using CockroachDB as a Backend for OSS MongoDB Alternative FerretDBAggregated on: 2022-08-18 19:51:51 I first heard of FerretDB formerly known as MangoDB in 2021, right around the time CockroachDB 21.1 was available. FerretDB is an open-source alternative to MongoDB. It serves as a proxy, converting MongoDB protocol queries to SQL. The storage backend in FerretDB is Postgresql and naturally, I had to try swapping Postgresql with CockroachDB. It didn't work the last time I tried it last year; now that FerretDB has had time to mature, I am going to attempt it again. This is where it used to break: View more...Docker Commands You Should Know as a BeginnerAggregated on: 2022-08-18 19:21:51 Before going into the functionality and features of Docker, we need to understand why we need Docker. If you have been around this industry for quite some time now, then you would have come across this meme about the introduction of Docker. Well, this meme is apparently funny but somehow turns out to be a factual one. View more...Stargate and Cassandra 4.0 - Better TogetherAggregated on: 2022-08-18 19:21:51 Six years in the making, Apache Cassandra has reached its 4.0 GA release. This is a big milestone for one of the most important open source projects, and a significant step forward in the world of NoSQL and Fast Data. Highlights in 4.0 This new release brings a lot of exciting features to Apache Cassandra. A few highlights include: View more...Artificial Intelligence — Everything You Need to KnowAggregated on: 2022-08-18 16:36:51 Artificial Intelligence is one of the most talked about technologies today. But what is it, exactly? And why should you care? Here, we'll go through everything you need to know about Artificial Intelligence, including what it is and its types, how it works, and the benefits it can provide for your business. We will also explore some of the concerns that people have about AI and address them head-on. So if you're interested in learning more about this fascinating technology, read on! What Is Artificial Intelligence? The term “Artificial Intelligence” was coined in 1956 by John McCarthy, an American mathematician and computer scientist. AI is the ability of machines to learn and work like humans. AI has a history that dates back to antiquity. The first recorded example of a machine exhibiting rudimentary AI was a mechanical chess player built by engineer Wilhelm Schickard in 1623. View more...Top 3 OWASP Vulnerabilities and How to Deal With ThemAggregated on: 2022-08-18 16:06:51 As you probably already know, Open Web Application Security Project addresses many threats and vulnerabilities in the cyber security environment. In order to carry out its purpose, OWASP offers forums all around the world as well as an online library stocked with books and materials for education. Basically, they’ve created a list of vulnerabilities that are worth your time taking care of. This list includes lots of threads, but all around the web, you can easily find the top 10 of them, including Broken Access Control, Critical Data Disclosure, Injection attacks, Broken Authentication, XML External Entities Injection, Cross-Site Scripting, Incorrect Security Configuration, Insecure Deserialization, Insufficient Logging, and Monitoring, as well as Using Components with Known Vulnerabilities. Each cyber vulnerability has its own way of solution. So, I’ve decided to overview the top 3 vulnerabilities mentioned above since they are the most widespread. Let’s break them down by examples, descriptions, and options to prevent. View more...Angular 13's New and Improved Features and Updates You Need to KnowAggregated on: 2022-08-18 15:36:51 As of this writing, Angular 13 has been released. You can tell that this was a well-thought-out version since it has numerous new features and increased functionality for developers. The release date of Angular 13 was set for November 3, 2021. Angular's newest version contains a slew of new capabilities that make the development process more efficient. Here are some of the most crucial things we have to offer as an Angular Development Company USA or any other parts across the globe: Take a look at the most recent version and apply it to your app. Angular 13's Most Exciting New Features and Updates Google's popular framework has received an upgrade. If you're looking to build an engaging and strong app, check out the most simplified and pre-planned Angular version 13 features. View more...Most Loved Machine Learning Software Tools for DevelopersAggregated on: 2022-08-18 14:21:51 Any specialized software in artificial Intelligence, self-iterated data analysis, supervised learning, and other Machine Learning algorithms are considered machine learning software. Machine learning can be used in many software applications, including email classification or human-computer interaction. View more...Cloud Data: Understanding 3 Common PitfallsAggregated on: 2022-08-18 03:51:51 The daily hype is all around you. From private to public cloud, multi-cloud, and even hybrid cloud, you're overrun with information telling you this is the path to your digital future. To complicate matters while you are contemplating these choices, you are expected to keep up your daily tasks of enhancing customer experiences and agile delivery of those applications. View more...Open-Source SPL Helps Java Handle Files of Open Formats: TXT, CSV, JSON, XML, and XLSAggregated on: 2022-08-18 03:36:51 It is common to process data files of open formats like TXT, CSV, JSON, XML, and XLS in Java applications. Hardcoding in Java is extremely complicated, so we often turn to certain ready-for-use open-source packages, but each package has its weaknesses. Parsing Library This type of class library enables to read an external file in Java as the latter’s internal object through a simpler coding process than hardcoded data retrieval. Common products include: View more...How To Use Supertokens’ Pre-Built UI With VuejsAggregated on: 2022-08-17 22:21:51 SuperTokens is an open-source project which enables you to add auth to your app quickly. It gives you a pre-built auth UI and backend APIs for an end-to-end integration experience. Before we dive into the code, let’s discuss the overall architecture. View more...Convert API Log Data Into Actionable InformationAggregated on: 2022-08-17 21:51:51 You’ve built an API to solve technical problems, but you know that’s just the beginning. In addition to helping developers use it, you need to understand how they use it. You want to measure its performance and popularity and make adjustments based on what you discover. Maybe some developers are seeing a lot of errors when making API calls or it’s taking too long for them to get to the first “Hello World.” Perhaps the number of developers converting to paying customers is below your expectations. You want to understand the usage of your API and ensure that customers use your API in the long term. View more...Use AWS App Runner, DynamoDB, and Cdk To Deploy and Run a Cloud-native Go AppAggregated on: 2022-08-17 21:21:51 Earlier, I covered a Serverless URL shortener application on AWS using DynamoDB, AWS Lambda and API Gateway. In this blog post, we will deploy that as a REST API on AWS App Runner and continue to use DynamoDB as the database. AWS App Runner is a compute service that makes it easy to deploy applications from a container image (or source code), manage their scalability, deployment pipelines, and more. View more...How Are Smart Technologies Changing the Translation Industry?Aggregated on: 2022-08-17 21:21:51 We are currently at a point in language and technological development when a collision is inevitable – some may even argue that it has already occurred. We are simply waiting for the dust to settle. Digitalization, the Internet of Things, AI and machine learning, and – going back even farther – the smartphone, voice recognition, and the introduction of the internet and social media; all those technologies have contributed to the world we live in now. Of all technologies, Artificial Intelligence is the most spoken one that is already used in every industry. Today, we will talk about the translation industry undergoing dramatic changes. Businesses and communications not limited to physical borders are now working on erasing language barriers. While Machine Translation (MT) has been around for a long time, the current usage of Artificial Intelligence has dramatically enhanced the availability of real-time, at-your-fingertips translation to the general public like never before. AI provides various benefits, including the capacity to incorporate context and language specifics with improved accuracy. View more...How to Use String Data to Empower Your Similarity Search ApplicationsAggregated on: 2022-08-17 20:21:51 Milvus 2.1 comes with some significant updates, which make working with Milvus a lot easier. One of them is the support of string data type. Right now, Milvus supports data types including strings, vectors, Boolean, integers, floating-point numbers, and more. This article presents an introduction to the support of string data type. Read and learn what you can do with it and how to use it. View more...ASP.NET Web Forms Modernization Series, Part 2: Business Logic Layer ConsiderationsAggregated on: 2022-08-17 19:21:51 The series expands on the topics discussed in our Migration Guide: ASP.Net Web Forms to Modern ASP.NET whitepaper, a compilation of technical considerations for modernizing legacy .NET web applications, gathered from our experience at Resolute Software doing many .NET modernization projects. Here is a list of all articles in the ASP.Net Web Forms modernization series: View more...Lamda Functions Help AI Developers Easily Create DataFrames in PythonAggregated on: 2022-08-17 19:21:51 Python is the most popular language for developing machine learning applications. According to one survey, 69% of developers that create machine learning programs use Python. There are many reasons machine learning developers use Python. One of the biggest benefits is that the language is platform independent. It is also simple, flexible, and has a large community that developers can call on for support. View more...DevOps Team: Roles and ResponsibilitiesAggregated on: 2022-08-17 18:51:51 As businesses transitioned from a product-oriented development model towards a customer-centric approach, smaller release cycles, better quality, and seamless collaboration across DevOps teams became the need of the hour. DevOps rightly serves this purpose. DevOps is an innovative methodology that offers a set of practices that brings development and operations teams together to collaborate seamlessly and continuously deliver quality products faster and better. Different teams are assigned different tasks in a traditional waterfall software development environment. Developers are focused on introducing features according to project requirements using existing software, while the operations teams are concerned about the stability of the infrastructure. As such, change is something that developers want and operations worry about. The product quality is also the sole responsibility of the Quality team. View more...How to Use IP Addresses for Data Protection and PrivacyAggregated on: 2022-08-17 18:21:51 It is a common practice for public and private organizations to depend on their IT teams to secure data; while there is nothing wrong with the idea, it is not enough. With more people operating remotely and the number of global data breaches jumping by 273% in the first quarter of 2020, the IT team cannot take on the task of overseeing data protection efficiently alone as we move on. Even individuals who may not be part of any organization need to secure their data and ensure their privacy; this has become critical in the face of the heightened activities of cybercriminals. The prediction by Gartner Inc. that global security spending will hit $170 billion by 2022 indicates that cybercriminals are not relenting in their nefarious activities. View more...What Is Iterative Development: A Beginners GuideAggregated on: 2022-08-17 17:51:51 The mobile and web development industry is advancing at a fast pace, with new tools and methods being made available to developers to create better applications. To succeed, businesses and developers must stay current on software development life cycles and technologies. Software development life cycles have helped companies deliver high-quality products efficiently and with fewer errors. View more...How Blockchain Tech Can Improve DevOps Practices in Web3Aggregated on: 2022-08-17 12:21:51 Although in its early stages, Web3 shows promise to deliver the benefits of blockchain and DevOps working together. This article discusses how DevOps practices, processes, tools, and blockchain technologies complement each other to deliver Web3 solutions. DevOps is an umbrella term encompassing a culture, mindset, development styles, processes, and technologies for software development. DevOps focuses on collaboration, automation, predictable outcomes, shorter delivery cycles, and quicker client feedback to improve the quality of software delivery. View more...Docker Commands Beginners Should KnowAggregated on: 2022-08-17 03:06:50 Docker is an open-source platform for creating, deploying, and running containers. It's available for macOS, Windows, and Linux, and enjoys wide support from all the major cloud providers. So, you can create your containers on your favorite operating system and deploy them anywhere. Let's look at the Docker commands you need to know to manage Docker images and containers. View more...Where Does Cybersecurity Go from Here?Aggregated on: 2022-08-17 02:36:50 I had the opportunity to hear Chris Krebs, founding partner of the Krebs Stamos Group and former director of the Cybersecurity and Infrastructure Security Agency (CISA) deliver the opening keynote at the 25th Black Hat Security Conference. For 25 years, the InfoSec community and industry have chipped away at security vulnerabilities in technology with research and adversary insights. For 25 years, vendors and software firms have introduced new products and protection. With the last 25 years as prologue — and as we look to the next 25 years — we need to ask, "Are we on the right track?" View more...APIs Are Now at the Center of Digital TransformationAggregated on: 2022-08-17 02:36:50 As we take stock of how COVID-19 has affected the way we operate, nothing in technology is more apparent than the switch to digital. Although many of us have transitioned from water-cooler conversationalists to reluctant Zoom dwellers, the impact on business processes themselves might actually be more profound. According to McKinsey, coronavirus has acted as an accelerant on companies offering digital products and services. Across all business areas, digital adoption has accelerated to such a degree that it’s the equivalent of fast-forwarding six years so that we’re now operating in 2027, where 60% of all businesses in the US employ digital processes. View more...Multi-tenancy Architecture With Shared Schema Strategy in Webapp Application Based on Spring-boot, Thymeleaf, and Posmulten-hibernate (Part 1)Aggregated on: 2022-08-16 23:51:50 Potential Problem and Solution Let's imagine that we are a SaaS solution provider. Your customers are primarily companies that want to have their own space in the scope of your service where their users can work together around your service. In this article, we will refer to your clients as tenants. The solution uses a relational database. During architecture design, when you already know that you will pick a relational database, you may face of choice between a single database or multi-tenant architecture. Suppose there is a requirement that the application should allow sharing of data (CRUD) between tenants, and sharing by calling REST API or some queue solution is not acceptable from a performance standpoint. In that case, a single database solution seems to be the most reasonable in which you just need to execute SQL operations. Although with some compromise, you might achieve the same effect with multi-tenancy architecture that uses a shared schema strategy by defining some of the tables that should not be isolated by the discriminator column (described in the latter part of the article) and applying additional queries that are used for authorization. However, we must remember that isolating tenant data in the single database solution requires a lot of additional code that the developer has to implement to protect data. This approach might complicate implementation without mentioning sharing data, making developers work much harder. In case when sharing data between tenants is not our requirement. A single database solution can still be our choice, but the additional code we would have to implement increases the time and effort to deliver it. By choosing multi-tenancy architecture, we might get rid of this problem. Of course, choosing this approach comes to some other challenges that we would not have with a single database, and they are different depending on the picked strategy, but this topic is for another article. To go ahead with multi-tenancy architecture, we must decide which strategy to pick. The most popular three strategies are separate database, separate-schema, and shared-schema. And also, in this case, each strategy has pros and cons. From an isolation standpoint, the strategy of a separate database guarantees the highest level. And shared schema strategy has the lowest level compared to mention two others. That is why it is important to ensure your potential customer agrees that his data will be stored in the same schema. As for performance, the separate database seems to be the best choice. Although the application would have managed a database connections pool for each tenant, operations on a single database would be executed only for one tenant. But also, please remember that by implementing the separate schema or shared schema strategy, we can combine it with a separate database. For example, by keeping one group of tenants in a single database with a separate/shared schema and one tenant, we have guaranteed the highest performance and data isolation level in a separate database. Such an approach would also require some wise routing strategy, but this topic is for another article. The most significant advantage of the shared schema strategy is that it requires the least amount of resources, reducing costs. It would help if you considered other things when choosing the right strategy, like DDL operations execution, fault tolerance, and many others. But it is not the topic for this article. View more...Java Thread Programming (Part 3)Aggregated on: 2022-08-16 22:06:50 Continuing from part 2, let’s start this article with a bit of context first (and if you don’t like reading text, you can skip this introduction, and go directly to the section below where I discuss pieces of code). Context When we start an application program, the operating system creates a process. Each process has a unique id (we call it a PID) and a memory boundary. A process allocates its required memory from the main memory, and it manipulates data within a boundary. No other process can access the allocated memory that is already acquired by a process. It works like a sandbox, and in that way, avoids processes stepping on one another's feet. Ideally, we can have many small processes to run multiple things simultaneously on our computers and let the operating system's scheduler schedule them as it sees fit. In fact, this is how it was done before the development of threads. However, when we want to do large pieces of work, breaking them into smaller pieces, we need to accumulate them once they are finished. And not all tiny pieces can be independent, some of them must rely on each other, so we need to share information amongst them. To do that, we use inter-process communication. The problem with this idea is that having too many processes on a computer and then communicating with each other isn’t cheap. And precisely that is where the notion of threads comes into the picture. The idea of the thread is that a process can have many tiny processes within itself. These small processes can share the memory space that a process acquires. These little processes are called "threads." So the bottom line is that threads are independent execution environments in the CPU and share the same memory space. That allows them faster memory access and better performance. View more...Integrate Oracle Database With Apache Kafka Using DebeziumAggregated on: 2022-08-16 21:36:50 Oracle Databases are used for traditional enterprise applications, cloud-native use cases, and departmental systems in large enterprises. Debezium connector for Oracle is a great way to capture data changes from the transactional system of record and make them available for use cases such as replication, data warehousing, and real-time analytics. What Is Debezium? Debezium is an open source distributed streaming platform for change data capture (CDC) that provides Apache Kafka Connect connectors for several databases, including Oracle. View more...Step by Step Guide to Create Mule Custom Connection Using Java SDKAggregated on: 2022-08-16 21:06:50 Connectors in Mule are also called Extensions or Module. Every connector in Mule has the following important elements, Components - Given a set of parameters, Components can be executed to produce or alter messages in a flow. Sources and Operations are the most common components of a module. View more...On Some Aspects of Big Data Processing in Apache Spark, Part 2: Useful Design PatternsAggregated on: 2022-08-16 19:36:50 In my previous post, I demonstrated how Spark creates and serializes tasks. In this post, I show how to utilize this knowledge to construct Spark applications in a maintainable and upgradable way, where at the same time "task not serializable" exceptions are avoided. When I participated in a big data project, I needed to program Spark applications to move and transform data from/to relational and distributed databases, like Apache Hive. I found such applications to have a number of pitfalls, so all "hard to read code," "method is too large to fit into a single screen," etc. problems need to be avoided for us to focus on deeper issues. Also, Spark jobs are similar: data is loaded from a single or multiple databases, gets transformed, then saved to a single or multiple databases. So it seems reasonable to try to use GoF patterns to program Spark applications. View more... |
|
|