# Curated Stack Kit: Apache projects for small and medium businesses Prepared October 29, 2026 for the October 30 article. [Read the full explanation](https://jwatte.com/blog/apache-stack-small-medium-business/). ## How to use this kit Start with one business decision and circle only the components needed to support it. Replace our assumptions with a provider's scope, measured data and a recovery target. Approve the next phase only after its acceptance test passes. This is a planning worksheet, not a tested installation recipe; no stack was installed for this series. All prices are US dollars before tax, observed October 29, 2026. Published prices, assumed quantities and arithmetic are distinguished below. These examples retain source applications, accounting, identity and existing desktops. Five or seven separate hosts are an itemized isolation budget, not minimum hardware or an availability guarantee. ## The example businesses Small: a specialty apparel brand with its own fulfillment, 20 people within our assumed 10 to 30 range. Annual revenue of $2 million to $5 million is our assumption. Need: reconcile sales, refunds and shipping, and preserve approved packing answers. Medium: a specialty machinery manufacturer, 80 people within our assumed 50 to 150 range, two production locations. Annual revenue of $15 million to $40 million is our assumption. Need: reconcile work orders, inspection and dispatch; find approved specifications; give authorized staff remote access. Historical tables and current shift exception alerts are separate optional extensions. NYU Stern's January 2026 US data reports Apparel gross margin 56.88% and net margin 3.85% across 35 firms; Machinery gross 37.47% and net 10.58% across 105 firms. The market excluding financials is 34.39% gross and 8.56% net. These are public company industry aggregates, not these businesses' actual margins. Apparel's high gross margin must not be mistaken for high net profit. No profit forecast is made from our revenue assumptions. ## Small stack | Component | Normal day's job | Who runs it | Initial scope | |---|---|---|---| | Apache Hop | Combines order, refund, product cost and carrier exports; puts unmatched rows aside | You, with a capable helper | One repeatable scheduled import | | Apache Superset | Shows product contribution and unresolved shipping exceptions | Your IT department or provider | A few agreed reports over a small PostgreSQL reporting database | | Apache Answer | Holds approved packing, returns and product answers | You, with a capable helper | Staff questions with an assigned editor | | Apache HTTP Server | Provides the HTTPS entrance to the internal tools | You, with a capable helper | Restricted routes and maintained certificates | | Apache HertzBeat | Checks service health and warns the responsible helper | You, with a capable helper | Service checks plus a separate check of report freshness | | Existing identity provider | Handles the staff identity source and departure process | Your IT department or provider | Test each application's supported login and permissions | 1. The existing shop, accounts and shipping systems export permitted fields. Keep card data outside these exports and check PCI DSS responsibilities before changing payment handling. 2. Hop records the source date, checks identifiers and joins refunds to orders. A missing cost or unknown product becomes an exception, not a zero that flatters the margin. 3. Validated rows enter reporting tables. Retain source exports and import identifiers so a repeated delivery cannot silently double sales. 4. Superset reads those tables with restricted credentials. The owner sees the last complete import time beside the report. 5. Staff use Answer for the explanation of a return rule. It links to the approved procedure; it does not contain customer order details. 6. HTTP Server provides the entrance, existing identity controls access where supported, and HertzBeat warns the helper when a service or freshness check fails. Keep PostgreSQL reporting tables and Superset metadata recoverable with separate credentials. PostgreSQL is a non Apache dependency. Five hosts: Hop $24, Superset with bounded reporting and metadata databases $48, Answer $24, HTTP Server $24, HertzBeat $24 monthly. A workload test may require separate database capacity. Existing identity integration must be checked per application. This company has no demonstrated reason to run Flink, Kafka or Iceberg. ## Medium stack | Component | Normal day's job | Who runs it | Decision | |---|---|---|---| | Hop and Superset | Reconcile work orders, inspections and shipments; show exceptions by batch and site | You for Hop; your IT provider for Superset | Baseline | | Answer and Solr | Keep reviewed explanations in Answer; search approved specifications through a separate Solr application | You for Answer; your IT provider and developer for Solr | Baseline; distinct collections | | HTTP Server and HertzBeat | Provide the internal entrance and report failed services or stale data | You with a capable helper | Baseline, with provider oversight | | Guacamole with its supported Tomcat runtime | Gives authorized staff browser access to existing desktops | Your IT department or provider | Baseline only for the stated remote access need | | Existing identity provider | Keeps access tied to named staff and approved roles | Your IT department or provider | Retain; do not add Syncope automatically | | Iceberg plus Spark and object storage | Preserves analytical table history and runs reproducible batch calculations | Your developer integrates Iceberg; your IT provider operates the platform | Optional history extension | | Kafka plus Flink | Retains replayable events and evaluates a changing pattern while the shift continues | Your IT department or provider, with a developer | Optional event extension | 1. Existing systems export work order, lot, inspection and shipment identifiers. Hop loads reconciled tables for the morning report. 2. Superset reads the reporting database. Solr indexes approved specification text and revision metadata; Answer holds explanations written by people. Neither is the source of production truth. 3. If history becomes a demonstrated problem, Spark writes validated historical tables in Iceberg format to object storage. A catalog records how engines locate the current table metadata. 4. Spark produces batch summaries back into the reporting database. Superset reads that SQL database. It does not query a bucket merely because Iceberg files exist there. 5. If a current shift needs faster decisions, a supported producer publishes timestamped events to Kafka. Flink groups them by machine or batch, updates state and creates an exception for a person to review. 6. A compatible Iceberg sink can retain events for later analysis. Immediate alerts take their own delivery path; they do not wait for an hourly dashboard refresh. Guacamole supplies remote desktop access separately from this data flow. Seven baseline hosts: the small layout plus Solr $48 and Guacamole $24, totaling $216/month. The Guacamole host includes its supported application runtime, connection service and authentication database for a limited pilot. No failover is included. Keep manufacturing controls, safety interlocks and the ERP outside this advisory reporting project. NiFi, Airflow, Doris, Syncope, SkyWalking and OFBiz are not included. Price a substitution or addition only after identifying its specific job. Answer searches reviewed Q&A; Solr serves a different approved specification collection. Test revisions, deletions and access restrictions in both. ## Component and recovery checklist Record the installed version and dependency versions before acceptance. The release observations below are from October 29, 2026. They are research references, not an instruction to combine every newest version. Follow the official documentation for the chosen supported branch, verify packages and review security notices. | Component and recorded version | Official installation starting point | Backup and recovery method to demonstrate | Monitoring and acceptance check | |---|---|---|---| | Hop 2.19.0, August 17, 2026 | [Install](https://hop.apache.org/manual/latest/getting-started/hop-download-install.html) | Versioned project definitions, protected connection configuration, source exports and replay identifiers | Failed import, rejected rows, last complete business date; replay same input without doubling totals | | Superset 6.1.0, May 13, 2026 artifact date | [Supported deployment guidance](https://superset.apache.org/docs/installation/kubernetes/) | Consistent metadata database backup, dashboard exports, protected application secret configuration | Login and role checks, query errors, freshness; restore a dashboard and its permissions | | PostgreSQL dependency, provider records supported major and patch | [Official installation](https://www.postgresql.org/docs/current/installation.html) | [Documented database backup](https://www.postgresql.org/docs/current/backup.html), roles and protected configuration; use a recovery method matched to the loss target | Disk growth, failed backups, failed connections; reconcile restored reporting tables | | Answer 2.0.3, October 9, 2026 | [Install](https://answer.apache.org/docs/installation/) | Database, uploads, configuration and recoverable secrets | Staff login, content permissions, rejected uploads; restore questions and attachments | | HTTP Server 2.4.69, October 1, 2026 upstream; supported OS package may backport fixes | [Install](https://httpd.apache.org/docs/2.4/install.html) | Route configuration, required content and protected key material or documented reissue process | Certificate expiry and application route checks; management ports remain private | | HertzBeat 1.9.0, September 17, 2026 | [Recommended Compose](https://hertzbeat.apache.org/docs/start/docker-compose-deploy/) | PostgreSQL configuration database and retained VictoriaMetrics data; protected notification configuration | Trigger and acknowledge a real test alert; separately detect loss of the monitor | | Solr 10.0.0 current major, March 3, 2026; prior major 9.11.0 dated October 4 | [Production guide](https://solr.apache.org/guide/solr/10_0/deployment-guide/taking-solr-to-production.html) | Index backup or tested rebuild from retained approved sources, schemas and authorization rules | Failed indexing, query errors, stale revisions; remove a document and verify it disappears | | Guacamole 1.6.0, June 22, 2025 | [Container guide](https://guacamole.apache.org/doc/gug/guacamole-docker.html) | Authentication database, connection configuration and protected credentials; desktop data separately | Failed login and unexpected connection attempts; revoke a user and test effective loss of access | | Tomcat dependency, provider pins a Guacamole supported image/runtime | [Tomcat documentation](https://tomcat.apache.org/whichversion.html) | Recover application deployment and runtime configuration with Guacamole | Runtime and application errors; avoid an untested major upgrade | | Existing identity provider, record plan and supported integrations | Use that provider's current official documentation | Recovery administrators, controlled configuration exports and account recovery procedure | Joiner, role change and leaver tests for every connected application | | Optional Kafka 4.4.0, October 6, 2026 artifact date | [Quick start](https://kafka.apache.org/quickstart) | Define source retention, topic configuration, schema and producer recovery; replication alone is not a backup | Consumer lag, retained replay window, disk and failed producers; prove recovery after interruption | | Optional Flink 2.3.0, June 25, 2026 | [First steps](https://nightlies.apache.org/flink/flink-docs-stable/docs/getting-started/local_installation/) | Durable checkpoints, tested savepoints, job code and configuration; preserve replayable input | Failed checkpoints, lag, watermark progress and missing alerts; restart and inject late/duplicate events | | Optional Iceberg 1.12.0, September 29, 2026 | [Spark starter](https://iceberg.apache.org/docs/latest/spark-getting-started/) | Consistent catalog, metadata and referenced data files; independent recovery copy | Commit failures, small files, snapshot retention; reproduce a retained historical query | | Optional Spark 4.1 compatible line; provider selects supported patch | [Spark quick start](https://spark.apache.org/docs/latest/quick-start.html) and [Iceberg matrix](https://iceberg.apache.org/multi-engine-support/) | Job definitions, dependency pins and reproducible input; output tables covered by Iceberg recovery | Job failures, memory, row reconciliation and runtime; do not assume latest Spark 4.2.1 matches Iceberg 1.12 | | Optional S3 Tables, managed service with no customer server version | [Access guide](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-access.html) | Table recovery and retention plan, permissions and independent recovery boundary | Requests, storage, object growth, compaction and spend; test actual restore/export process | Hop's default starting guidance is one core and 4 GB RAM. Superset's FAQ cites community experience with 8 GB and two virtual CPUs, not a universal minimum. HertzBeat gives two cores, 4 GB and 10 GB disk for its base service. The $24 and $48 allocations for the other services are workload test assumptions. Solr's 8 GiB whole host is a constrained pilot, not an 8 GiB Java heap plus free operating system memory. A bigger measured workload requires a bigger quote. Flink's local JobManager and TaskManager are an evaluation arrangement. Checkpointing is disabled by default; enable it and test durable storage. Production availability needs a separate design, durable checkpoints and replayable sources. Iceberg is a table format, not an extra always running server. One compatible engine, catalog and durable object store can start the history evaluation. Time travel requires retained snapshots and files; it is not an independent backup. Coordinate Iceberg retention with the running Flink sink so cleanup does not remove required recovery state. ## Phases and stop points | Business and phase | Work and success measure, our acceptance targets | Stop point | |---|---|---| | Small 1 | Reconcile two weeks of source exports with Hop or the existing tools; explain every difference from source totals | Stop if the current export and spreadsheet already answer the question | | Small 2 | Trial one Superset dashboard and ten approved Answer entries; managers can trace an exception and staff can find the current instruction | Stop if nobody uses either output without prompting | | Small 3 | Assign monitoring and access owners; restore the data and configuration to a fresh environment within an agreed workday | Keep this stack bounded; no Flink or Iceberg without a new demonstrated requirement | | Medium 1 | Join work orders, inspections and dispatch for one production line; reconcile counts over two weeks | Stop expansion if identifiers or source ownership remain unreliable | | Medium 2 | Add approved document search and needed remote access; test revision removal, a revoked user and recovery | Stop if the existing document system or remote service already passes those tests | | Medium 3 | Separately trial Iceberg history, then Flink only if needed; reproduce a retained report and deliver a test exception within an assumed two minute target, including restart and late data tests | Stop streaming if a fifteen minute batch meets the operational need or alerts have no assigned responder | Our additional acceptance record: responsible person ______; backup person ______; maximum lost data ______; maximum recovery time ______; restore test date ______; measured result ______; next phase approved by ______. A simulated success with sample data is not permission to connect production controls. ## Cost worksheet Labor is the series $68.09/hour employee compensation proxy, not a provider quote. DigitalOcean NYC3 Small is $24/month for 2 vCPU, 4 GiB and 80 GiB disk; Medium is $48 for 4 vCPU, 8 GiB and 160 GiB. B2 storage is $6.95 per decimal TB/month with the first 10 GB free across the account. We assume that allowance is otherwise unused and transfer and requests stay within included limits. | Fill in before buying | Low | High | |---|---|---| | Setup hours and provider rate | ______ | ______ | | Monthly admin hours and rate | ______ | ______ | | Hosts, size and monthly cap | ______ | ______ | | Retained backup GB, including all versions | ______ | ______ | | Extra transfer, requests, disks and support | ______ | ______ | | SaaS seats, tasks, request volume and plan | ______ | ______ | | SaaS setup and remaining administration | ______ | ______ | | Custom integration, training and migration | ______ | ______ | | Incident response and on call coverage | ______ | ______ | | Optional extension, with a separate scope | ______ | ______ | Setup = setup hours × rate. Monthly = hosting + backups + admin hours × rate + other charges. Total = setup + 36 × monthly. Savings = alternative total minus ownership total. Break even = ceiling(additional setup / positive monthly savings); otherwise never when setup is also higher. Use unrounded inputs and round only displayed totals. Setup period hosting is excluded in these examples; add it if servers are rented before the 36 operating months. Small manual: four simple service allowances plus one IT allowance = 40 to 108 setup hours and 10 to 28 monthly hours; $144 hosting; 100 to 500 GB retained backups. Medium: five simple allowances plus two IT allowances = 68 to 180 setup hours and 17 to 47 monthly hours; $216 hosting; 500 to 2,000 GB retained backups. Superset and Guacamole get the IT allowance; Solr keeps its limited single host hours but requires IT skills. Existing source software and identities are retained; new reporting database resources are inside the Superset pilot host allowance. | Published item and billing basis | Small assumption | Medium assumption | |---|---|---| | Power BI Pro, $14/user/month paid yearly | 5 to 10 users: $70 to $140/month | 15 to 30 users: $210 to $420/month | | Zapier Professional, starting at $19.99/month paid yearly | One plan if connectors and tasks fit | Same conditional starting plan for baseline exports | | Discourse Pro, $100/month monthly billing | One private knowledge community | One community; at most five administrators or moderators | | Datadog Infrastructure Pro, $18/host/month on demand | Three existing operational hosts: $54/month | Six existing operational hosts: $108/month | | Algolia Grow, usage billed | Not needed | 100,000 searches and 50,000 records: $45/month | | Splashtop Remote Access Pro, $8.25/user/month paid yearly | Existing access retained | 5 to 10 users: $41.25 to $82.50/month | The monitoring comparison assumes three or six existing operational hosts common to both choices. It does not buy visibility into a SaaS vendor's internal servers. Algolia includes 10,000 requests and 100,000 records; (100,000 assumed requests minus 10,000) / 1,000 × $0.50 = $45/month. Our 50,000 records incur no record overage. Private document authorization and connector fit need validation. Discourse's five staff seats are administrators or moderators, not all readers. Small SaaS monthly floor = (5 to 10) × $14 + $19.99 + $100 + 3 × $18 = $243.99 to $313.99. Medium = (15 to 30) × $14 + $19.99 + $100 + 6 × $18 + $45 + (5 to 10) × $8.25 = $524.24 to $775.49. These are conditional subscription floors for overlapping outputs, not complete implementation quotes. Zapier's entry tasks and connectors must fit. Datadog infrastructure pricing does not include every possible check. Both sides exclude custom integration, report design, content work, migration, training, business configuration and incidents. SaaS incremental infrastructure setup/admin is assumed zero. Existing checkout and accounting costs are not eliminated. Shopify Basic $39 monthly and QuickBooks Simple Start $38 regular monthly are context prices only, not manufacturer plan recommendations. | Baseline operating budget | Small low | Small high | Medium low | Medium high | |---|---:|---:|---:|---:| | Setup | $2,724 | $7,354 | $4,630 | $12,256 | | Monthly | $826 | $2,054 | $1,377 | $3,430 | | Self hosted, 36 months | $32,443 | $81,295 | $54,200 | $135,738 | | SaaS monthly floor | $244 | $314 | $524 | $775 | | SaaS, 36 months | $8,784 | $11,304 | $18,873 | $27,918 | | Additional self hosted cost | $23,659 | $69,991 | $35,327 | $107,821 | | Break even against SaaS floor | Never | Never | Never | Never | Small low arithmetic: 40 × $68.09 + 36 × ($144 + 90 × $0.00695 + 10 × $68.09) = $32,443 rounded. Medium low: 68 × $68.09 + 36 × ($216 + 490 × $0.00695 + 17 × $68.09) = $54,200 rounded. Any consolidation requires a revised resource and support budget. ## AI assisted views of the same examples AI can draft configuration, inspect logs and help prepare update instructions. A competent person still approves access, checks results and proves restoration. Our AI hours are assumptions from the series setup research, not measured Apache installation savings. For simple services, we use 50% to 80% of manual setup hours and 75% to 100% of monthly hours. For IT services, use 65% to 90% and 80% to 100%. The endpoints produce **23.6 to 92.4 setup hours and 7.8 to 28 monthly hours** for small; **41.2 to 156 setup hours and 13.35 to 47 monthly hours** for medium. Prompting, review, testing and correction are inside those hours. The Claude subscription view uses one **Max 5x at $100/month**. The ChatGPT view uses one **Pro 100 at $100/month**. Charge one separate setup month and all 36 operating months: **$3,700**, once per stack. We allocate the full subscription because this example assumes no other use. Equal prices do not imply equal allowances or performance; neither vendor guarantees the whole workload fits. Additional months or usage add cost. The API view uses Claude Opus 5.5 at **$4 input, $20 output, $0.20 cached read and $5 short cache write**, or GPT-6 Astra at **$10, $50, $1 and $12.50**, per million tokens at standard rates. No credits, batch discounts or paid tools are deducted. Cache categories replace ordinary input billing for those tokens; they are not added to it. Our cumulative small API budgets are 1.8 to 9 million input and 0.18 to 0.9 million output for setup; monthly, 0.9 to 4 million input and 0.09 to 0.4 million output. Medium uses 3 to 15 million and 0.3 to 1.5 million for setup; monthly, 1.5 to 6.5 million and 0.15 to 0.65 million. These sum the per service budgets, including retries, across many calls. They are not single prompts. Low assumes input splits into 30% ordinary, 10% short writes and 60% cache reads. High assumes all ordinary input. Keep individual requests within the applicable context price band. Token charges and the worksheet follow below. | 36 month total | Small low | Small high | Medium low | Medium high | |---|---:|---:|---:|---:| | Manual reference | $32,443 | $81,295 | $54,200 | $135,738 | | Claude subscription | $29,633 | $83,933 | $47,128 | $137,804 | | ChatGPT subscription | $29,633 | $83,933 | $47,128 | $137,804 | | Claude API | $26,064 | $81,151 | $43,646 | $135,598 | | OpenAI API | $26,270 | $82,528 | $43,989 | $137,839 | Low API assumptions reduce the ownership cost substantially, but **none changes the SaaS decision**. In the high case, unchanged monthly labor means tool charges consume the setup saving. A cheaper typing bill does not make seven separately maintained services the cheapest way to publish ordinary reports. Use supported coding tools with authorized server access. A browser assistant does not itself supply a server or a recovery plan. Subscription access and metered API usage are different budgets; do not treat a subscription as unlimited tokens for unattended integrations. Validate actual human hours during the pilot before carrying these assumed reductions into a purchasing decision. AI setup = adjusted human hours × $68.09 + setup tool cost. AI monthly = unchanged infrastructure + adjusted monthly human hours × $68.09 + monthly tool cost. AI total adds setup to 36 months. No setup month hosting or optional extension operations are included. The single $100 subscription is charged once across the whole stack, not per component. No separate paid terminal or browser tool is assumed. | Case | Claude API setup / monthly | OpenAI API setup / monthly | |---|---:|---:| | Small low | $6.876 / $3.438 | $17.730 / $8.865 | | Small high | $54 / $24 | $135 / $60 | | Medium low | $11.460 / $5.730 | $29.550 / $14.775 | | Medium high | $90 / $39 | $225 / $97.50 | Example: small low Claude setup = 1.8 × (0.30 × $4 + 0.10 × $5 + 0.60 × $0.20) + 0.18 × $20 = $6.876. Token quantities are in millions. Small low human setup = 23.6 × $68.09. Add the tool fee to that labor, not to the manual labor total. High subscription cases cost more than manual from operating month 10 small and month 16 medium. High Claude API cases become more expensive at months 43 and 40, beyond this worksheet; their 36 month gains are only $144 and $140. High OpenAI API cases become more expensive at months 16 and 15. No ownership variant breaks even against the conditional SaaS floor. If review takes longer than manual work, replace the assumed hour savings with the measured increase. ## Optional history and event extension worksheet The optional manufacturer extension is outside both baseline totals. [Amazon Managed Service for Apache Flink](https://aws.amazon.com/managed-service-apache-flink/pricing/) publishes $0.11 per KPU hour in its US East example. One KPU supplies 1 vCPU and 4 GB memory. Add one orchestration KPU per streaming application and 50 GB running storage per processing KPU at $0.10/GB/month. At our assumed 730 hours monthly, one processing KPU costs (1 + 1) × 730 × $0.11 + $5 = **$165.60/month**, or **$5,962 over 36 months**. Two processing KPUs cost **$250.90/month**, or **$9,032**. Input streams, durable backups, transfer and application work are additional. Managed compute still needs a developer and an operator. [S3 Tables](https://aws.amazon.com/s3/pricing/) supplies managed Iceberg table storage and maintenance. Its Oregon example totals **$28.54/month**, or **$1,027 over 36 unchanged months**: $27.14 storage, $0.15 PUT requests, $0.20 GET requests, $0.26 object monitoring and $0.79 compaction. That example retains 1,024 GB, adds 1,000 five MB data files and three metadata files daily, makes 500,000 monthly GET requests and assumes 100 MB final objects. It is a usage example, not a fixed plan. The service has an Iceberg REST endpoint. An Athena route uses the documented AWS analytics integration with Glue Data Catalog; catalog charges are separate. [Athena](https://aws.amazon.com/athena/pricing/) at $5/TB scanned means $5 to $25 monthly for our assumed 1 to 5 TB of scans. [EMR Serverless](https://aws.amazon.com/emr/pricing/) prices the series Spark example at $0.052624/vCPU hour and $0.0057785/GB hour: 20 to 80 hours × (4 × $0.052624 + 8 × $0.0057785) = **$5.13 to $20.54/month**, including the driver within those aggregate resources. Do not add these regional examples into a deployment quote. Choose one region, measure traffic and price input retention, catalog usage, backups, table maintenance, compatible compute and provider labor. The kit supplies those missing worksheet lines. Spark batch and Athena are alternative query routes where either suffices; buying both requires a reason. The Flink page's example arithmetic uses $0.10 storage, but a later sentence shows $0.121. Our figures reproduce the published example; confirm the selected region's current rate before purchase. Neither these service charges nor the baseline includes writing the event rules. The sensible first commitment is a priced, bounded trial with a separate implementation quote. S3 Tables Oregon example unit rates: $0.0265/GB/month storage; $0.005 per 1,000 PUT; $0.0004 per 1,000 GET; $0.025 per 1,000 monitored objects; binpack compaction $0.002 per 1,000 processed objects plus $0.005/GB processed. The example's three daily metadata files average 10 KB, over 30 days. Its $0.79 compaction comprises $0.06 objects and $0.73 data. AWS uses 1 TB = 1,024 GB in this example; B2 uses the decimal TB conversion in our backup worksheet. Glue catalog metadata has the first one million stored objects and one million monthly accesses free, then $1 per 100,000 stored objects/month and $1 per million requests. Other Glue work can cost extra. A zero catalog line is valid only within the account's unused allowance. Direct S3 Tables REST access and the Glue integrated Athena route are different choices. | Additional line | Quantity / rate to verify | 36 month entry | |---|---|---| | History engine | Choose Spark batch or compatible SQL service; size aggregate compute and scans | ______ | | Object storage and maintenance | Retained snapshots, requests, objects, compaction and region | ______ | | Catalog | Chosen route, shared allowances and excess usage | ______ | | Kafka or another supported replay source | Actual retention, ingress, egress, consumers and recovery | ______ | | Flink | Actual supported runtime, processing KPUs, orchestration, running and durable storage | ______ | | Independent recovery copies | Data plus metadata and catalog, source retention and restore traffic | ______ | | Network | Provider and region transfer, endpoints and connection charges | ______ | | People | Implementation, rule tests, monthly operation and incident coverage | ______ | | AI assistance if used | Measured human hours plus allocated tools; no assumed inclusion in baseline | ______ | Do not approve a complete extension cost until every required row has a value or an explained exclusion. No total or break even is claimed for this unquoted extension. A retention rule must preserve the snapshots and in-progress files needed by a running Flink sink. ## Questions for an IT provider 1. Which existing report, export or subscription was tested first, and why did it fail the requirement? 2. Which components are essential in phase one? Which are optional, and what result authorizes them? 3. What engine, connector, JVM, Python and database versions are compatible and supported together? 4. What is the measured largest job, concurrency, file size and retained data volume? What fails first? 5. What does the quoted labor cover? Separate installation, connector development, ongoing operation and incident response. 6. Who approves the definitions of revenue, returns, scrap and dispatch? Who reconciles exceptions? 7. How are permissions carried into reports, indexed documents, backups and remote connections? Demonstrate a departed employee losing access. 8. What survives one host, catalog or identity outage? Where is the independent recovery copy, and who has restored it? 9. How do duplicate and late events behave? What is the retained replay window, checkpoint interval and alert delivery guarantee? 10. Who receives security advisories and monitors the monitor? What happens when the usual administrator is unavailable? 11. Can we export the data and configuration when we leave, and can a second provider operate them? 12. What is the complete regional service quote, including consumption, backups, transfer, support and AI overages? ## Sources and dates The series observations below are dated **October 29, 2026**, UTC. Prices, versions and observed documentation can change. Dates identify research, not installations. Low and high hours, revenue, seats, traffic and acceptance targets are our assumptions. 1. [NYU Stern industry margins](https://pages.stern.nyu.edu/~adamodar/New_Home_Page/datafile/margin.html), 23:40 direct and 23:41 browser. Page identifies “Data used is as of January 2026.” Gross and net columns are distinct. 2. [BLS wage](https://data.bls.gov/oesprofile/?areas=INDUSTRY,STATE,MSA&major_group=150000&measure=01&occupation=151244&year=2025), 21:12; [compensation share](https://data.bls.gov/timeseries/CMU2020000000000P), 21:17; [DigitalOcean](https://www.digitalocean.com/pricing/droplets) and [B2](https://www.backblaze.com/cloud-storage/pricing), 21:10. Shared series observations. 3. [Power BI](https://www.microsoft.com/en-us/power-platform/products/power-bi/pricing), 21:39; [Zapier](https://zapier.com/pricing), 21:38; [Discourse](https://www.discourse.org/pricing), 21:37; [Datadog](https://www.datadoghq.com/pricing/), 21:38; [Algolia](https://www.algolia.com/pricing/), 21:37; [Splashtop](https://www.splashtop.com/products/remote-access), 21:48. Reused series prices and billing terms. 4. [Shopify](https://www.shopify.com/pricing), 21:39; [QuickBooks](https://quickbooks.intuit.com/pricing/), browser observation approximately 21:45 to 21:55, exact minute unrecorded. Context prices, excluded from both totals. 5. [Claude Max](https://support.claude.com/en/articles/11049741-what-is-the-max-plan), 23:31; [ChatGPT pricing](https://chatgpt.com/pricing/) and [Pro tiers](https://help.openai.com/en/articles/9793128-about-chatgpt-pro-tiers), supplied browser observation approximately 23:27, exact minute unrecorded. 6. [Claude API prices](https://platform.claude.com/docs/en/about-claude/pricing), 23:31; [OpenAI API prices](https://developers.openai.com/api/docs/pricing), rechecked 23:40; [Codex CLI](https://developers.openai.com/codex/cli), 23:32. Prices do not validate assumed time savings or token budgets. 7. [Hop installation](https://hop.apache.org/manual/latest/getting-started/hop-download-install.html) and [sizing](https://hop.apache.org/manual/latest/installation-configuration.html), 21:39; [Superset FAQ](https://superset.apache.org/docs/faq/) and [deployment warning](https://superset.apache.org/docs/installation/docker-compose/), 21:38. See linked group articles for the other baseline components and their security sources. 8. [Iceberg overview](https://iceberg.apache.org/), [evolution](https://iceberg.apache.org/docs/latest/evolution/), [maintenance](https://iceberg.apache.org/docs/latest/maintenance/), [catalog configuration](https://iceberg.apache.org/docs/latest/spark-configuration/) and [AWS integration](https://iceberg.apache.org/docs/latest/aws/), 23:40. 9. [Iceberg releases](https://iceberg.apache.org/releases/), [Spark starter](https://iceberg.apache.org/docs/latest/spark-getting-started/), [Flink integration](https://iceberg.apache.org/docs/latest/flink/) and [Flink writes](https://iceberg.apache.org/docs/latest/flink-writes/), 23:40; [engine compatibility](https://iceberg.apache.org/multi-engine-support/), 23:41. Iceberg 1.12 lists Spark through 4.1; do not assume Spark 4.2.1 compatibility. 10. [Flink downloads](https://flink.apache.org/downloads/), [state](https://nightlies.apache.org/flink/flink-docs-stable/docs/concepts/stateful-stream-processing/), [event time](https://nightlies.apache.org/flink/flink-docs-stable/docs/concepts/time/), [checkpoints](https://nightlies.apache.org/flink/flink-docs-stable/docs/dev/datastream/fault-tolerance/checkpointing/), [first steps](https://nightlies.apache.org/flink/flink-docs-stable/docs/getting-started/local_installation/) and [high availability](https://nightlies.apache.org/flink/flink-docs-stable/docs/deployment/ha/overview/), 23:40. 11. [Managed Flink](https://aws.amazon.com/managed-service-apache-flink/pricing/), [S3 Tables pricing](https://aws.amazon.com/s3/pricing/), [Athena](https://aws.amazon.com/athena/pricing/) and [EMR](https://aws.amazon.com/emr/pricing/), 23:40. Flink storage discrepancy disclosed above; regional examples are not one system quote. 12. [S3 Tables access](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-access.html), [Glue integration](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-glue.html) and [Glue pricing](https://aws.amazon.com/glue/pricing/), 23:42. 13. [ASF security](https://www.apache.org/security/) and [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0), series observation 21:40; [PCI DSS](https://www.pcisecuritystandards.org/standards/), series observation October 29. Requirements depend on the actual data and deployment. 14. Component releases and installation: [workflow group](https://jwatte.com/blog/apache-workflow-automation-small-business/), [dashboards](https://jwatte.com/blog/apache-dashboards-analytics-small-business/), [search](https://jwatte.com/blog/apache-search-knowledge-base-small-business/), [web servers](https://jwatte.com/blog/apache-web-servers-api-gateways-small-business/), [messaging](https://jwatte.com/blog/apache-messaging-event-streaming-small-business/), [remote access](https://jwatte.com/blog/apache-security-identity-remote-access-small-business/) and [monitoring](https://jwatte.com/blog/apache-monitoring-logging-small-business/). Each provides official source links observed October 29, 2026; preserve artifact date and branch qualifications. 15. [PostgreSQL installation](https://www.postgresql.org/docs/current/installation.html), [PostgreSQL backup](https://www.postgresql.org/docs/current/backup.html) and [Tomcat supported versions](https://tomcat.apache.org/whichversion.html): provider documentation starting points, checked October 29, 2026. Select the versions supported by the actual application. *Apache, the Apache feather logo and the Apache project names are trademarks of The Apache Software Foundation. This site is not affiliated with or endorsed by the ASF. Other product names are used for identification only.*