---
title: "Architecture and platformsWavect"
canonical: https://wavect.io/blog/clusters/architecture-platforms/
language: en
description: "Framework, platform and system-design choices that affect delivery over the long term."
image: "https://wavect.io/img/general/bak/open_graph_preview.jpg"
---

Cluster

# Architecture and platforms

Framework, platform and system-design choices that affect delivery over the long term.

## Start with the cornerstone

- [**Smart City Architecture Best Practices: MQTT, LoRaWAN, Kubernetes and Terraform**A vendor-neutral guide to building smart-city platforms that survive production: MQTT at the edge, LoRaWAN and ChirpStack for private sensor networks, FIWARE/NGSI-LD and SensorThings for interoperability, Terraform for repeatable infrastructure, and Kubernetes only when the team can operate it.](/blog/smart-city-architecture-best-practices-2026/)

## Latest in this collection

### [EU Battery Passport Software Architecture for 2027](/blog/eu-battery-passport-software-architecture-2027/)

- **Details:** Delivery & QA · 24 Aug 2026

Turn the 18 February 2027 deadline into a buildable identity, data, access, QR, and lifecycle architecture.

### [EU Data Act: Connected-Product API Checklist](/blog/eu-data-act-connected-product-api-2026/)

- **Details:** Delivery & QA · 24 Aug 2026

Implement access by design before 12 September 2026 with a data catalog, device-user identity, APIs, exports, and security controls.

### [Cursor Origin vs GitHub: Should Your Team Switch?](/blog/cursor-origin-vs-github-code-hosting/)

- **Details:** Delivery & QA · 21 Aug 2026

Cursor now hosts code, but Origin is still an early beta. Compare sync behavior, CI, governance, price and a low-risk pilot before moving your source of truth.

### [MoneyPrinterTurbo Review 2026: Free AI Video, Real Costs](/blog/moneyprinterturbo-review-2026/)

- **Details:** Delivery & QA · 20 Aug 2026

MoneyPrinterTurbo turns a topic into a narrated short, but free code is only the start. See its setup, hidden costs, licensing, platform risk and production fit.

### [Odoo API integration: the five limits that decide your architecture](/blog/odoo-erp-api-integration-limits-2026/)

- **Details:** Delivery & QA · 18 Aug 2026

Odoo Cloud treats one call per second as acceptable use, every JSON-2 call is its own transaction, and XML-RPC has a removal date. What that forces on an integration.

### [AI in Grocery Retail: An MPREIS Opportunity Map](/blog/mpreis-ai-grocery-retail-opportunity-map/)

- **Details:** Delivery & QA · 14 Aug 2026

An independent outside-in analysis of demand forecasting, fresh-food workflows, the customer app and a pragmatic 90-day validation path for grocery retail.

## Complete article directory

1. [EU Battery Passport Software Architecture for 2027](/blog/eu-battery-passport-software-architecture-2027/) 24 Aug 2026
2. [EU Data Act: Connected-Product API Checklist](/blog/eu-data-act-connected-product-api-2026/) 24 Aug 2026
3. [Cursor Origin vs GitHub: Should Your Team Switch?](/blog/cursor-origin-vs-github-code-hosting/) 21 Aug 2026
4. [MoneyPrinterTurbo Review 2026: Free AI Video, Real Costs](/blog/moneyprinterturbo-review-2026/) 20 Aug 2026
5. [Odoo API integration: the five limits that decide your architecture](/blog/odoo-erp-api-integration-limits-2026/) 18 Aug 2026
6. [AI in Grocery Retail: An MPREIS Opportunity Map](/blog/mpreis-ai-grocery-retail-opportunity-map/) 14 Aug 2026
7. [Stateful LLM Platform Production Architecture](/blog/stateful-llm-platform-production-architecture/) 14 Aug 2026
8. [Tirol Kliniken (TILAK): A Digital Operations Opportunity Map](/blog/tirol-kliniken-digital-opportunity-analysis/) 14 Aug 2026
9. [TIWAG Digital Energy: A Software and AI Opportunity Map](/blog/tiwag-digital-energy-services-opportunity-map/) 14 Aug 2026
10. [AI 3D Model Generators for Game Development: 2026 Guide](/blog/ai-3d-model-generators-game-development-2026/) 13 Aug 2026
11. [Fintech Architecture Remediation Without a Rewrite](/blog/fintech-architecture-remediation-without-rewrite/) 13 Aug 2026
12. [Tampermonkey Workflow Automation](/blog/tampermonkey-workflow-automation-guide/) 4 Aug 2026
13. [Will AI Kill Cross-Platform Frameworks?](/blog/will-ai-kill-cross-platform-frameworks/) 4 Aug 2026
14. [Floci vs LocalStack: AWS Emulator Review for CI in 2026](/blog/floci-vs-localstack-aws-emulator/) 26 Jul 2026
15. [Git Worktrees vs Jujutsu for AI Coding Agents: 2026 Decision Guide](/blog/git-worktrees-vs-jujutsu-ai-coding-agents/) 22 Jul 2026
16. [Programming Languages Matter Less. Software Engineering Matters More.](/blog/programming-languages-matter-less-ai/) 15 Jul 2026
17. [The Future of Enterprise Software](/blog/future-of-enterprise-software/) 14 Jul 2026
18. [Smart City Architecture Best Practices: MQTT, LoRaWAN, Kubernetes and Terraform](/blog/smart-city-architecture-best-practices-2026/) 9 Jul 2026
19. [The Factory Returns](/blog/the-factory-returns/) 7 Jul 2026
20. [React Native vs Flutter for a DACH Founder Who Has to Hire Locally](/blog/react-native-vs-flutter-dach-hiring/) 29 May 2026
21. [LoRaWAN vs NB-IoT vs Sigfox: How to Budget an IoT Sensor Pilot](/blog/lorawan-nbiot-sigfox-pilot-cost/) 28 May 2026
22. [Software - a Breathing Organism](/blog/software-a-breathing-organism/) 29 Jun 2024

## Structured Data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/#organization",
      "@type": [
        "Organization",
        "ProfessionalService",
        "LocalBusiness"
      ],
      "employee": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "founder": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "legalRepresentative": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "name": "Wavect GmbH",
      "subjectOf": {
        "@id": "https://wavect.io/verified-claims.json#dataset",
        "@type": "Dataset",
        "creator": {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        },
        "description": "A machine-readable registry of quantitative and qualitative claims published by Wavect, with review dates, localized page appearances and public third-party citations where available.",
        "inLanguage": "en",
        "isAccessibleForFree": true,
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "name": "Wavect verified publication claims",
        "url": "https://wavect.io/verified-claims.json"
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/team/kevin-riedl/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Kevin Riedl",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796365",
        "https://www.linkedin.com/in/wsdt",
        "https://github.com/wsdt"
      ],
      "url": "https://wavect.io/team/kevin-riedl/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/team/christof-jori/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Christof Jori",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796367",
        "https://www.linkedin.com/in/jocr77/",
        "https://github.com/jo-chris"
      ],
      "url": "https://wavect.io/team/christof-jori/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/#website",
      "@type": "WebSite",
      "inLanguage": [
        "en",
        "de",
        "es",
        "zh"
      ],
      "name": "Wavect",
      "potentialAction": {
        "@type": "SearchAction",
        "query-input": "required name=search_term_string",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://wavect.io/search/?q={search_term_string}"
        }
      },
      "publisher": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/blog/clusters/architecture-platforms/#webpage",
      "@type": "WebPage",
      "dateModified": "2026-08-05",
      "inLanguage": "en",
      "isPartOf": {
        "@id": "https://wavect.io/#website",
        "@type": "WebSite"
      },
      "lastReviewed": "2026-08-05",
      "url": "https://wavect.io/blog/clusters/architecture-platforms/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "item": "https://wavect.io/",
      "name": "Home",
      "position": 1
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/blog/overview/",
      "name": "Blog",
      "position": 2
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/blog/topics/delivery-qa/",
      "name": "Delivery and QA",
      "position": 3
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/blog/clusters/architecture-platforms/",
      "name": "Architecture and platforms",
      "position": 4
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "CollectionPage",
  "about": "Delivery and QA",
  "description": "Framework, platform and system-design choices that affect delivery over the long term.",
  "mainEntity": {
    "@type": "ItemList",
    "itemListElement": [
      {
        "@type": "ListItem",
        "name": "EU Battery Passport Software Architecture for 2027",
        "position": 1,
        "url": "https://wavect.io/blog/eu-battery-passport-software-architecture-2027/"
      },
      {
        "@type": "ListItem",
        "name": "EU Data Act: Connected-Product API Checklist",
        "position": 2,
        "url": "https://wavect.io/blog/eu-data-act-connected-product-api-2026/"
      },
      {
        "@type": "ListItem",
        "name": "Cursor Origin vs GitHub: Should Your Team Switch?",
        "position": 3,
        "url": "https://wavect.io/blog/cursor-origin-vs-github-code-hosting/"
      },
      {
        "@type": "ListItem",
        "name": "MoneyPrinterTurbo Review 2026: Free AI Video, Real Costs",
        "position": 4,
        "url": "https://wavect.io/blog/moneyprinterturbo-review-2026/"
      },
      {
        "@type": "ListItem",
        "name": "Odoo API integration: the five limits that decide your architecture",
        "position": 5,
        "url": "https://wavect.io/blog/odoo-erp-api-integration-limits-2026/"
      },
      {
        "@type": "ListItem",
        "name": "AI in Grocery Retail: An MPREIS Opportunity Map",
        "position": 6,
        "url": "https://wavect.io/blog/mpreis-ai-grocery-retail-opportunity-map/"
      },
      {
        "@type": "ListItem",
        "name": "Stateful LLM Platform Production Architecture",
        "position": 7,
        "url": "https://wavect.io/blog/stateful-llm-platform-production-architecture/"
      },
      {
        "@type": "ListItem",
        "name": "Tirol Kliniken (TILAK): A Digital Operations Opportunity Map",
        "position": 8,
        "url": "https://wavect.io/blog/tirol-kliniken-digital-opportunity-analysis/"
      },
      {
        "@type": "ListItem",
        "name": "TIWAG Digital Energy: A Software and AI Opportunity Map",
        "position": 9,
        "url": "https://wavect.io/blog/tiwag-digital-energy-services-opportunity-map/"
      },
      {
        "@type": "ListItem",
        "name": "AI 3D Model Generators for Game Development: 2026 Guide",
        "position": 10,
        "url": "https://wavect.io/blog/ai-3d-model-generators-game-development-2026/"
      },
      {
        "@type": "ListItem",
        "name": "Fintech Architecture Remediation Without a Rewrite",
        "position": 11,
        "url": "https://wavect.io/blog/fintech-architecture-remediation-without-rewrite/"
      },
      {
        "@type": "ListItem",
        "name": "Tampermonkey Workflow Automation",
        "position": 12,
        "url": "https://wavect.io/blog/tampermonkey-workflow-automation-guide/"
      },
      {
        "@type": "ListItem",
        "name": "Will AI Kill Cross-Platform Frameworks?",
        "position": 13,
        "url": "https://wavect.io/blog/will-ai-kill-cross-platform-frameworks/"
      },
      {
        "@type": "ListItem",
        "name": "Floci vs LocalStack: AWS Emulator Review for CI in 2026",
        "position": 14,
        "url": "https://wavect.io/blog/floci-vs-localstack-aws-emulator/"
      },
      {
        "@type": "ListItem",
        "name": "Git Worktrees vs Jujutsu for AI Coding Agents: 2026 Decision Guide",
        "position": 15,
        "url": "https://wavect.io/blog/git-worktrees-vs-jujutsu-ai-coding-agents/"
      },
      {
        "@type": "ListItem",
        "name": "Programming Languages Matter Less. Software Engineering Matters More.",
        "position": 16,
        "url": "https://wavect.io/blog/programming-languages-matter-less-ai/"
      },
      {
        "@type": "ListItem",
        "name": "The Future of Enterprise Software",
        "position": 17,
        "url": "https://wavect.io/blog/future-of-enterprise-software/"
      },
      {
        "@type": "ListItem",
        "name": "Smart City Architecture Best Practices: MQTT, LoRaWAN, Kubernetes and Terraform",
        "position": 18,
        "url": "https://wavect.io/blog/smart-city-architecture-best-practices-2026/"
      },
      {
        "@type": "ListItem",
        "name": "The Factory Returns",
        "position": 19,
        "url": "https://wavect.io/blog/the-factory-returns/"
      },
      {
        "@type": "ListItem",
        "name": "React Native vs Flutter for a DACH Founder Who Has to Hire Locally",
        "position": 20,
        "url": "https://wavect.io/blog/react-native-vs-flutter-dach-hiring/"
      },
      {
        "@type": "ListItem",
        "name": "LoRaWAN vs NB-IoT vs Sigfox: How to Budget an IoT Sensor Pilot",
        "position": 21,
        "url": "https://wavect.io/blog/lorawan-nbiot-sigfox-pilot-cost/"
      },
      {
        "@type": "ListItem",
        "name": "Software - a Breathing Organism",
        "position": 22,
        "url": "https://wavect.io/blog/software-a-breathing-organism/"
      }
    ],
    "numberOfItems": 22
  },
  "name": "Architecture and platforms",
  "url": "https://wavect.io/blog/clusters/architecture-platforms/"
}
```
