Case: Building WMS From Scratch And Why You Would Like To Join the Team

January 30, 2024 5 min read

About the Сlient

A privately held company that was founded far back in 1889. It specializes in public warehousing, cold storage, transportation, dry warehousing, and dedicated distribution facilities.

Project’s Technologies

  • Java
  • Angular
  • SQL
  • Javascript

Project Results

 

The Innovecs team has recovered the WMS codebase. The codebase was revamped, which increased deployment speed by 8 times. The team is integrating new project features into the system. Their goal is to do an Oracle conversion. For this, the client has formed a sub-team within Innovecs solely focused on performance.

 

 

Migration to IBM WebSphere for Linux to improve WMS operation and decrease the deployment speed from 2 hours to 15 minutes.

 

 

Reduced amount of calls to the database to accelerate its work. This was implemented to store the rarely changing data in the cache and speed up the entire software development process.

 

 

Moving from JSP to Single Page Application (Angular) happened to be an optimal solution for displaying all the loaded data, which is simple to navigate for users and developers.

Some Tech Stuff or How We Handle Challenges

GoldenGate

Challenge: The production is deployed in both the East and West client’s country regions to reduce network latency for customers. The topology consists of application and DB instances spread across these regions. There’s a requirement for certain data to be shared across regions, and in the event of a region failure, users should be rerouted to another region without any data loss. 

Resolution: We developed a tool synchronizing data between the East and West regions. This tool replicates data changes bidirectionally between servers in both regions with minimal latency. Post-implementation, it was also configured to replicate one-way to create a copy of the DB. This allows us to execute resource-intensive tasks without disturbing main DB users.

Odd/Even IDs for Regions

Challenge: Due to replication latency between the East and West regions, sysids generated independently in each region can occasionally fall out of sync, leading to duplicate sysids. 

Resolution: We addressed this by assigning odd and even sequences exclusively to each region. 

Hazelcast

Challenge: Repeatedly reading user settings and certain object properties from the DB during application runtime was causing significant performance degradation.

Resolution: We implemented Hazelcast for caching settings and properties, resulting in improved application performance. 

Docker

Challenge: Developers require a DB instance for debugging. Using separate Oracle Cloud instances proved costly and underperforming, while a single instance led to database deadlock exceptions and unpredictable results when used by multiple developers simultaneously. Remote instances also required internet and VPN connections for access. 

Resolution: We containerized the DB for local debugging. This allows each developer to use their own data without interference, and it’s faster, simpler to run, and can operate offline. 

Oracle Object Storage

Challenge: Several application flows generate files that need to be readily accessible to users. 

Resolution: We consolidated the process of document generation, storage, and email using a custom solution based on OCI Object Storage.

Why Join Us If You Are a Developer

Explore our team member testimonials to gain insights into our vibrant work culture and the values we uphold.

Having been involved in this project few years, I can attest to its stability and well-planned nature, which provides a comfortable environment for development. Over the course of seven years, we've not only maintained its sustainability but also embraced innovation. Recently, we've successfully pre-migrated to Java 17 and Spring Framework 5, keeping us at the forefront of technology. This balance of stability and innovation creates a rewarding experience, making it an exciting project to lead and be part of.
Dmytro Derzhevytskyi
Advanced Software Engineer, 3 years at the project
Our team, talented and resilient, has consistently demonstrated their ability to overcome challenges and deliver innovative software solutions. The adoption of a part of Nexus to resolve cross-team dependencies before each Sprint has significantly boosted our productivity by enhancing our collaboration and coordination within. This methodology, coupled with our team's unwavering commitment to excellence, ensures we always rise to the occasion and exceed expectations. It's inspiring to manage such a high-performing team.
Anton Shashuk
Engineering Manager, 5 years at the project
Upon joining this project, I was warmly welcomed and guided by a mentor who generously shared their knowledge and experience. The team, predominantly composed of Senior developers, is highly supportive and always ready to lend a hand in overcoming challenges. Their high level of expertise not only motivates me but also fosters a strong desire to learn and strive for excellence. The team spirit here is palpable and it's a privilege to be part of such a collaborative and skilled group.
Maksym Popovych
FullStack Software Engineer, 1 year at the project

Join us to be a part of a highly skilled, collaborative team that embraces innovation, works on the stable and well-planned project, and utilizes modern technology to deliver exceptional software solutions.

Send your CV on this page: https://bit.ly/481PP4L

Don't See Your Dream Job?