Component Description
Services
API and Web Interfaces
Services providing access to the Altcraft platform for users and administrators, as well as interaction with internal components.
-
api— the main API service (REST/HTTP) for working with Altcraft data and functions -
webadmin— the admin panel for managing accounts, users, and system settings -
webcontrol— the user panel for working with business logic: managing campaigns, mailings, and segments -
webloyalty— the loyalty program module interface
Tracking and Analytics
Services that collect, route, and process tracking events (clicks, opens, subscriptions, forms, etc.), as well as serve static content.
External request processing
-
cookie_saver— performs the following:- handles user cookies
- serves scripts and resources for Web SDK, Push SDK, and unsubscribe logic in emails
- processes requests from Web SDK and Push SDK
- processes requests from custom unsubscribe logic in emails
- processes website requests (web-layer pixels)
-
trk_amazon_sns— processes events from Amazon SES -
trkaction— performs the following:- tracking redirects for Email, SMS, and Push channels
- processes user and system links (unsubscribe, subscription confirmation, suppress, open/read pixel)
- processes trigger links (start trigger campaign)
- serves scripts and resources for the subscription manager
- serves scripts and resources for web versions of emails
-
trkcustom— performs the following:- tracking redirects for custom channels
- processes user and system links (unsubscribe, subscription confirmation, suppress, open/read pixel)
- supports custom trigger links
-
trkimage— image request handler, serves static images (e.g., inline in emails) -
trklisten— request handler for third-party services (integrations) -
trkpush— tracking redirect service for Push channel (deprecated) -
trkread— message read event processing service (deprecated) -
trkwebctrl— performs the following:- processes events in web forms and popups
- serves scripts and resources for the Altcraft tag manager, popups, and web forms
- processes user actions in web forms and popups
Event aggregation and routing
-
procactions— processes tracking events (opens, clicks, subscriptions), updates profiles, generates events forproctriggerandprochook -
procpixel— processes web-layer pixel events, imports and updates profiles, generates events forproctriggerandprochook -
procpush— processes Push channel events, imports and updates profiles, creates push events -
procsenderev— processes events from senders: deliveries, bounces, returns, responses (deprecated) -
procsmsev— processes outgoing SMS gateway events, polls gateways, generates events forproctriggerandprochook -
procsmslisten— processes incoming SMS gateway events, receives provider hooks, generates events forproctriggerandprochook -
proctrkweb— processes web form and popup events, writes data to the database, generates events forproctriggerandprochook -
procwebver— saves web versions of emails to storage -
procrpc— RPC service for receiving and processing requests from tracking services
Tasks
Persistent services for scheduling and executing tasks:
-
procworkflow— processes and executes workflow tasks -
proctask— schedules and runs background tasks (segment calculations, campaign launches, etc.)
Worker services (started on demand for specific resource-intensive work and stopped afterward):
-
campaign— manages execution of mass campaigns: preparing content and sending it to the message queue (broker) for further processing by senders -
segstat_recalc— recalculates static segments -
rescan_databases— recalculates statistics and metrics of profile databases -
dbimport— scheduled profile import from external SQL tables -
wfcapt— captures profiles into a workflow on schedule -
segstat_sync— synchronizes static segment data with external advertising platforms and audiences (e.g., Facebook, VK)
Data Processing
Services for internal data processing, integrations, and subscription management.
-
procresume— manages subscriptions: automatically unfreezes (resumes) subscriptions for profiles after suspension expiration -
proctrigger— processes and manages trigger (event-based) campaigns -
prochook— manages outgoing webhooks: generates and sends notifications to external systems based on Altcraft events -
procpiper— processes pipelines and data in custom (user-defined) channels -
procleadsaver— performs the following:- background operations with profiles and data
- deferred profile updates and imports
- asynchronous counter updates in databases and segments
- add/remove profiles in static segments (in development)
- mark profiles in supercampaign audiences (in development)
-
procevent— performs the following:- writes events to the analytics storage
- generates and routes events for
proctriggerandprochook
-
proceventgen— generates test events for debugging and testing Altcraft -
procintegras— performs the following:- manages integrations and message delivery
- integrations with external analytics services (AppMetrica, Facebook Audiences)
- synchronizes segments with external SQL databases
- sends messages through all SMS gateways
- sends messages through third-party Email gateways
- sends Push notifications
-
procplmt— performs the following:- manages indirect campaigns in custom channels
- processes moderation events in custom channels
- automatically unpublishes after TTL (Time to Live) expiration
Proxy
Separate Nginx instances for proxying network traffic to Altcraft services.
-
nginx-trk— proxies and routes requests to tracking services -
nginx-sites— proxies requests to API and web interfaces -
nginx-cookisaver— proxies requests to thecookie_saverservice
Databases
Main databases that require independent installation and maintenance.
MongoDB
Primary DB for storing all account entities: customer data, users, campaigns, templates, settings, and other common data required for Altcraft operation.
ClickHouse
ClickHouse — an analytical DBMS used to store subscriber activity history and Altcraft events (and in some cases for caching external SQL query results). These data are used for building segments and generating reports.
Kvrocks
Key-value store used for deduplication (contact data) in campaigns.
https://github.com/apache/kvrocks
SSDB
Key-value store used for storing short-term hourly account statistics and global stop lists (based on MD5 hashes of contact data).
https://github.com/ideawu/ssdb
PostgreSQL
Installed and connected additionally for the marketplace module, used for storing product and order data.
Bundled Databases
Delivered as static files with Altcraft, do not require separate installation or management.
SexDB
Used for automatic gender detection by profile name during data import.
GeoDB
Used to determine geolocation by IP address.
BadPass
Used to detect weak and compromised user passwords.
Message Brokers
RabbitMQ
The main message broker, used for various interactions between Altcraft services.