Skip to main content

Cursed Knowledge

This is the cursed knowledge I have learned throughout my career and home labbing. The kind of knowledge that makes you pull out your hair.

  1. AWS Glue Schema Registry Has No Bulk API

    2026/02
    AWS Glue Schema Registry Has No Bulk API

    While building an indexer to cache all schemas locally to eliminating slow on-demand AWS API calls from the UI. The hard truth became clear: there is no bulk API.

    Every full index requires a waterfall of calls per schema/per schema version:

    1. ListSchemas - paginated list, limited fields only (no version info, no schema definition)
    2. GetSchema - full metadata for one schema at a time
    3. ListSchemaVersions - again, limited fields
    4. GetSchemaVersion - full definition for one version at a time

    For 1,000 schemas with 10 versions each, that’s ~12,000 API calls per index

    The only escape: compare updatedTime from ListSchemas against stored state and skip schemas that haven’t changed. But still requires to do a full scan every 15 mins to catch schema version changes.

    AWS / Kafka
  2. Synology's Fake Authentication

    2025/10
    Synology’s Hyper Backup forces you to enter username and password for rsync daemon connections, but completely ignores whatever you type. The UI screams “AUTHENTICATION REQUIRED!” while the backend whispers “actually, I don’t care.” Just type anything and move.
    NAS/Backup
  3. Prometheus Doesn't Deal with Exactness

    2025/07
    Prometheus Doesn't Deal with Exactness
    Prometheus’s rate() and increase() functions use extrapolation instead of actual data, losing half your measurements and multiplying results incorrectly. Your “precise” business metrics are actually systematic lies.
    Monitoring
  4. CEL Java's Null Paradox

    2025/06
    CEL Java's Null Paradox
    In Google’s CEL Java, Java null isn’t actually null - it becomes CelUnknownSet, making value == null return unknown instead of true/false. You must use NullValue.NULL_VALUE instead of actual null to represent “null” values.
    Expression Language