The project's overview

Who’s the client?

A major company in the hardware and software industry.

What’s the mission?

Creating an IoT platform used for automating and optimizing traditional manufacturing processes with a microservice-based architecture.

Oxagile’s involvement:

The project’s technology partner.

The collaboration begins

Core platform development

The client’s smart manufacturing platform was outdated and needed complete replacement. Our team joined a major engineering effort to build a new, flexible solution, featuring modular components and independently customizable applications.

Solutioning

Over time, the client assigned us to deploy the updated solution at their first customer plant, customizing the applications within the platform for specific factory needs.

Oxagile's perfect sync: Building in harmony with the architectural blueprint

“It’s in our DNA to adapt for the benefit of our clients. Our team played an integral role in developing multiple applications within the platform, always aligning with the established architectural framework. The non-functional requirements were set at the architectural level, and as we focused on our specific modules, we diligently adhered to the strategies and guidelines laid out in this architecture. This ensured that our work was not only consistent but also perfectly aligned with the platform’s overarching vision.”
— Oxagile's Project Manager

Unpacking the projects' inner workings

Business rules

The module allows checking business logic against live attribute data and triggering actions when conditions are met. Live data refers to changing attribute values.

Two main data categories:

  • Metadata: Configuration data like modules, entities, attributes, and actions.
  • Live data: Operational attribute values defined in metadata.

Onboarding is when an external client sends metadata to the BR application to start using it, available via sync or async methods.

Document management

Document Management enables tracking and managing electronic documents across industries. It automates storage, organization, capture, retrieval, and the security of documents.

It tracks file changes and includes version control for error recovery. It integrates with Smart Manufacturing Platform using Micro UI, REST API, and Kafka. Documents are stored in its database, supporting multitenancy and securing files from unauthorized access.

Work instructions

Work Instructions are step-by-step guides for tasks or activities, also known as checklists (e.g., recipes or assembly guides). They improve training, quality, and efficiency.

The Work Instructions Manager, part of the Smart Manufacturing Platform, stores instructions and metadata. It integrates with Core Apps and reduces errors, speeds up production, and ensures safe task execution. It also provides quick access to training and expert knowledge.

Version approval

Version Approval streamlines the approval of new entity versions, allowing verification and feedback.

New entity versions are routed for manager approval, where they can be accepted or rejected. Once approved, they are released to production. The app integrates with the Smart Manufacturing Platform and stores approval requests, supporting audits and compliance. It offers centralized management for the approval process, with permissions restricted by user roles.

Timers management

Timers Management handles timers created by other core apps and provides callbacks when timers trigger.

Core apps set up timers in advance, and when they fire, callbacks are sent. The Timer Support app manages timer configurations and instances but leaves callback handling to the core apps. It integrates with the Smart Manufacturing Platform and stores timer configurations and history for auditing.

Material verification

Material Verification configures material rules and triggers actions when rules match or don’t match during runtime.

Changes in material availability trigger inventory events, which activate material rules. Based on rule results, actions like locking stations or sending notifications are applied. The MV app has Core and Runtime parts, using Kafka for async communication and REST API or direct DB calls for sync communication. It integrates with other Core and Runtime apps.

Master data app

Master Data enables importing and exporting platform data via CSV uploads for Core Apps. It supports APIs, Kafka, and direct database access for data exchange.

Tech nuances that shaped the project success

Large-scale data

The project faced the challenge of managing a massive data volume, complicating data requests from the front end.

Streamlining data requests

We quickly adapted to the environment and made active use of MicroUIs to avoid unnecessary data replication in certain scenarios, significantly reducing front-end data request times by ensuring lightweight and precise data delivery.

Real-time data streaming platform

One of the primary requirements for the project was in-depth knowledge of Kafka, particularly for DevOps-related roles. Apache Kafka plays a critical role in creating complex and reliable systems. Managing this broker effectively requires both experience and a solid grasp of its architecture, as it involves precise implementation and the ability to swiftly adapt to system changes.

Leveraging deep expertise in Kafka

Our team quickly adapts to complex tasks, including working with powerful tools like Kafka. Leveraging our expertise and thorough understanding of its intricacies, we confidently manage Kafka integration, ensuring the system operates smoothly and is prepared for high loads.

Elevating quality assurance

  • Comprehensive testing. We took a thorough approach to ensure product quality by implementing UI, API, and regression testing. Each of these testing types played a critical role in identifying bugs, ensuring smooth functionality, and maintaining consistency across updates.
  • Tackling integration testing challenges. To combat certain difficulties in achieving comprehensive coverage with integration testing, we introduced a solution leveraging an in-memory Kafka instance, which significantly enhanced our testing quality. This strategy enabled us to conduct integration tests more swiftly and reliably, ultimately boosting the overall efficiency and precision of the testing process within the project.

The best parts of our partnership the client values

Efficiency in task completion

Our team consistently delivers tasks quickly, meeting deadlines and adapting to evolving objectives.

High-quality results

The projects we complete adhere to the initial rigorous quality standards, following the approaches and guidelines established in the product’s overall architecture and logic.

Team autonomy

Having a business analyst on the project allows the team to work more independently, streamline development processes, and efficiently handle new tools.

What’s next: the momentum doesn’t stop there

“Our team is actively rolling out the solution for our client’s new customer, customizing the core platform’s applications for their factory under a separate contract. This pivot to solutioning marks a big step forward in our partnership, ensuring the tailored, high-quality software our client expects.”
— Oxagile's Project Manager
Industry
Manufacturing
Delivery Model
Oxagile Scrum
Domain
Effort and Duration
36 months in total, 216 man-months
Technologies
.NET, Kafka, RabbitMQ, PostgreSQL

Trusted tech partners for many more clients