Skip to content
IP FediuninFull-Stack & AI Engineer
← All case studies

Case 03 · Backend / Automation / Systems Integration

Business Process Automation

A platform for business process automation and integrations

Overview

Software that removes manual work: it takes data from several sources, checks and processes it, runs tasks and hands the results to other services.

Generalised experience across several systems

The charts are computed by this case's model on synthetic data — the same model that runs the interactive demo. They show what the approach changes, not figures from a client's system.

What I did

  1. Automation services in Python and Django
  2. External API and event integrations
  3. Task queue on RabbitMQ
  4. Validation, error handling, logging
  5. Monitoring and management interfaces

Before

  • The same manual steps for every record
  • Mistakes surface late
  • Only the person running the process sees its state

After

  • Records are checked at the entrance and processed automatically
  • A failed task never stops the others
  • Rejections and errors show up in monitoring, with reasons

Broken records stored

0%of broken records reach the database

  • Without checks at the entrance33%
  • Checked before the queue0%
The demo batch of six records, two of them broken: a missing amount and a malformed e-mail.

How it works

A model of the system you can run: watch requests and data move through the components. It is a simplified reconstruction on synthetic data, not the production code.

What is happening

Run the batch. You can add errors to the input data or take the notification service down.

The model runs in the browser on synthetic data. Times on the cards are illustrative, and motion is slowed down so the path can be followed.

Data batch

Records in the batch

IDSourceStatus
R-101APIwaiting
R-102Webhookwaiting
R-105Webhookwaiting
R-106APIwaiting
R-103APIwaiting
R-104Webhookwaiting

Monitoring

Entries appear after processing.

Engineering detailsThe full write-up: problem, architecture, implementation decisions and outcome.

Problem

Many processes repeat the same manual steps: data is taken from one system, checked, moved into another, and someone is told about the result. It is slow, mistakes surface late, and the state of the process is visible only to whoever runs it.

Solution

Automation services in Python and Django: incoming data is checked at the entrance, queued through RabbitMQ and processed by workers; results are stored, people are notified, and every rejection and error is visible in a monitoring interface.

My role

  • Built automation services in Python and Django.
  • Integrated external APIs and the handling of incoming data and events.
  • Organised sequential and asynchronous operations through a RabbitMQ task queue.
  • Implemented input validation, error handling and logging of task execution.
  • Organised storing the results in a database.
  • Built monitoring and management interfaces.

Technical architecture

Data source → Django API → validation → task queue → processing → storing the result → notification. The queue separates receiving data from processing it: the source gets its answer at once, and workers run the tasks at their own pace.

Implementation

  • Checks at the entrance. Invalid records are rejected before they are queued, and the reason is recorded for each.
  • Isolated failures. A failure in one task does not stop the others: the task is marked as failed and the error goes to the log.
  • Observability. Progress, rejections and errors are visible in the monitoring interface, not only in server logs.
  • Integrations as separate steps. Calls to external services are steps of their own, so an outage on their side does not break data intake.

Functional outcome

Processes that used to be done by hand run automatically: data from several sources is checked, processed and stored, results are passed on, and rejections and errors show up in monitoring together with their reasons.

Need a system like this?

Tell me about the problem — I'll come back with questions and a proposed approach.