Resolve database discrepancies with modern tooling

Learn about tools and methods to implement in your workflow to enable localization and versioning of resources to remove shared architecture limitations.
February 14, 2023
Last updated February 14, 2023

As an operations strategists, I work with teams across Discover® to help them creatively solve their problems. As teams at Discover move their products and services onto a modern infrastructure, I have heard success stories about how this move to modern tooling has removed manual effort from employees' day-to-day work.

Integrations testing is an area where the benefit of modernization is seen and felt. This article shares a common pain point—sharing a single database instance between teams— and some tools that could be used to solve this challenge.

Single database challenges

An existing pain point for engineers is the usage of a single database instance by multiple teams which contributes to pipeline failures and workflow disruptions due to high rates of instability. Multiple teams running test cases against a single database instance can create unexpected changes in data, data types, schemas, stored procedures, and the like. The result is that engineers are spending excessive time troubleshooting vague historical patterns and errors. Sound familiar?

Tools to meet and progress past database challenges

The following collection of tools and methods can help alleviate these pain points.

Embedded Kafka

Embedded Kafka is an in-memory Kafka instance you can run tests against locally. An in-memory Kafka broker's life span is limited to the life of a test, eliminating the need to depend on any external Kafka server or external services.

Embedded Postgres

Embedded Postgres is a fast-processing, standalone, and isolated database for running tests against which eliminates dependencies on real-time environmental databases. This tool enables teams to shift testing left, ensuring bugs are caught earlier in the software development lifecycle. Read more about Embedded Postgres in Database Testing for Spring Boot Apps using Embedded Postgres.

Flyway

Flyway helps you implement automated and version-based database migrations. It allows you to define the required update operations in a SQL script or as Java code. You can then run the migration from a command line client or automatically as part of your build process or integrated into your Java application. Read more about Flyway.

Conclusion

By taking advantage of modern tooling and infrastructure, engineering teams can reduce manual effort and innovate and simplify everyday processes.

© 2023 Discover Financial Services. Opinions are those of the individual author. Unless noted otherwise in this post, Discover is not affiliated with, nor endorsed by, any of the companies mentioned. All trademarks and other intellectual property used or displayed are property of their respective owners