Sign in

Norbert Orzechowicz

@norbert-tech.bsky.social
17 followers 11 following 263 posts

Problem solver, software architect, also working as a Data Witcher ⚔️, hunting and killing 🧌 and 🪳in data processing pipelines! Creator of flow-php.com

PostsRepliesMedia
Norbert Orzechowicz @norbert-tech.bsky.social · 11/02/2026
So many business owners (but also others who have never written a line of code) like to tell software developers how easy, fast, and maybe even redundant their job is getting with AI. So few developers tell the same to them. It looks like a projection, not prophecy 🤔
000
Norbert Orzechowicz @norbert-tech.bsky.social · 09/02/2026
If you find my work useful, please consider sponsoring me at flow-php.com/sponsor/
flow-php.com
Sponsor - Flow PHP - Data Processing Framework
Flow is a PHP-based, strongly typed data processing framework with low memory footprint that can process various data sources consistently. It offers a unified API for all data sources, including CSV, JSON, XML, Text, Parquet, Avro, Rest API, RDBMS, Elasticsearch / Meilisearch. Flow not only enables you to process various data sources consistently, but also strives to accurately detect data types and cast them to the appropriate PHP types.
000
Norbert Orzechowicz @norbert-tech.bsky.social · 09/02/2026
Flow on the other hand provides native telemetry integration through: - data frame And I'm also working on adding it into: - flow-php/filesystem (azure / aws bridges) - flow-php/parquet - flow-php/postgresql
100
Norbert Orzechowicz @norbert-tech.bsky.social · 09/02/2026
On top of that bundle is injecting telemtry into the most popular symfony services like: - http kernel / client - messenger - console - twig - doctrine - cache
100
Norbert Orzechowicz @norbert-tech.bsky.social · 09/02/2026
Now I'm working on flow-php/symfony-telemetry-bundle that will connect all dots together, registering in service container a Telemetry instance that if passed to flow libraries will provide telemetry from all those libraries out of the box.
100
Norbert Orzechowicz @norbert-tech.bsky.social · 09/02/2026
Library itself is not even coupled with open telemetry, this means that flow-php/telemetry signals like spans/logs/instruments can be translated to any protocol. In order to use OTLP, we have a package flow-php/telemetry-otlp-bridge flow-php.com/documentati...
flow-php.com
Documentation - Flow PHP - Data Processing Framework
Documentation
100
Norbert Orzechowicz @norbert-tech.bsky.social · 09/02/2026
flow-php/telemetry is a tiny, dependency free abstraction that implements OTLP and provides default, zero impact implementations for processors/exporters. I'm slowly introducing it into all Flow Libraries. flow-php.com/documentati...
flow-php.com
Documentation - Flow PHP - Data Processing Framework
Documentation
100
Norbert Orzechowicz @norbert-tech.bsky.social · 09/02/2026
I see two niches in the PHP ecosystem. One of them is data processing, and the second is observability. OpenTelemetry is an amazing concept, but the PHP implementation is not really aligned with how PHP and PHP apps work. Below comes from flow-php/telemetry and #Symfony Bundle
101
Norbert Orzechowicz @norbert-tech.bsky.social · 16/01/2026
If you find my work useful, please consider sponsoring me at flow-php.com/sponsor/
flow-php.com
Sponsor - Flow PHP - Data Processing Framework
Flow is a PHP-based, strongly typed data processing framework with low memory footprint that can process various data sources consistently. It offers a unified API for all data sources, including CSV, JSON, XML, Text, Parquet, Avro, Rest API, RDBMS, Elasticsearch / Meilisearch. Flow not only enables you to process various data sources consistently, but also strives to accurately detect data types and cast them to the appropriate PHP types.
000
Norbert Orzechowicz @norbert-tech.bsky.social · 16/01/2026
You can check my progress here: github.com/flow-php/fl... Once merged I'm going to add flow-php/telemetry to most of my packages/libraries 💪
github.com
feature: flow php telemetry library by norberttech · Pull Request #2150 · flow-php/flow
Resolves: #1334 Change Log Added flow-php/telemetry library flow-php/telemetry-otlp-bridge bridge Fixed Changed Removed Deprecated ...
100
Norbert Orzechowicz @norbert-tech.bsky.social · 16/01/2026
Flow Telemetry doesn't rely on global state, there are no singletons. Yet it follows OTEL specification. flow-php/telemetry-otlp-bridge helps with serialization telemetry objects to open telemetry protocol.
100
Norbert Orzechowicz @norbert-tech.bsky.social · 16/01/2026
flow-php/telemetry - contracts, telemetry abstraction. Why not OTEL? Mostly due to a lot of magic, AOP approach and implicit behaviors. OTEL seems to be ported from Java where AOP, not really aligned with how systems are designed in php.
100
Norbert Orzechowicz @norbert-tech.bsky.social · 16/01/2026
I'm working on new package for Flow #PHP Framework! 🤯 Two packages to be more precise: flow-php/telemetry flow-php/telemetry-otlp-bridge thread 👇
100
Norbert Orzechowicz @norbert-tech.bsky.social · 13/01/2026
If you also thinking about migrating, stop, just do it! It's super easy, their UI is very intuitive and if by any chance you would like to support Flow #PHP you can even use my referral link pr.tn/ref/WPGFD6SW !
account.proton.me
Enjoy two weeks of Proton for free
Experience true online privacy. Protect your data with Proton for free for the next 14 days.
000
Norbert Orzechowicz @norbert-tech.bsky.social · 13/01/2026
Last week I moved flow-php.com from G💩💩le to @ProtonMail Was planning this since a while but never had enough time, but let me tell you... It's AWESOME! User interface is light and clean, mobile apps works great. And those aliases <3
100
Norbert Orzechowicz @norbert-tech.bsky.social · 12/01/2026
There is something tempting about owning all those contracts and having control over everything, but on the other hand, it adds work - not much, as this would be 2 interfaces and 3 implementations (Symfony/Guzzle/curl) but still. What would you do? 🤔
000
Norbert Orzechowicz @norbert-tech.bsky.social · 12/01/2026
Its a second time where I could really use an async client contract. First time was when I was building azure blob SDK for Flow Filesystem library. I have to decide now, I could use an existing contract github.com/php-http/ht... or create my own 🤔
github.com
GitHub - php-http/httplug: HTTPlug, the HTTP client abstraction for PHP
HTTPlug, the HTTP client abstraction for PHP. Contribute to php-http/httplug development by creating an account on GitHub.
100
Norbert Orzechowicz @norbert-tech.bsky.social · 12/01/2026
Recently I have been working on a php telemetry library that is fully compatible with open telemetry protocol and does not use global state/singletons. I'm almost done with first draft, but of course I had to step into another rabbit hole... Async http client.
100
Norbert Orzechowicz @norbert-tech.bsky.social · 09/01/2026
Need to extract filtered data from PostgreSQL with pagination? Pass your WHERE parameters directly and Flow handles pagination correctly. The extractor auto-detects your parameter positions. If you use $1, $2 for filters, pagination params start at $3. #PHP #PostgreSQL #ETL
000
Norbert Orzechowicz @norbert-tech.bsky.social · 07/01/2026
Flow #PHP now supports onComplete callbacks for Symfony streamed responses. After streaming finishes, you get a Report with row counts, execution time, and memory stats. #PHP #DataEngineering #Symfony
000
Norbert Orzechowicz @norbert-tech.bsky.social · 07/01/2026
If you find my work useful, please consider sponsoring me at flow-php.com/sponsor/
flow-php.com
Sponsor - Flow PHP - Data Processing Framework
Flow is a PHP-based, strongly typed data processing framework with low memory footprint that can process various data sources consistently. It offers a unified API for all data sources, including CSV, JSON, XML, Text, Parquet, Avro, Rest API, RDBMS, Elasticsearch / Meilisearch. Flow not only enables you to process various data sources consistently, but also strives to accurately detect data types and cast them to the appropriate PHP types.
000
Norbert Orzechowicz @norbert-tech.bsky.social · 07/01/2026
We also upgraded the lowest supported PHP version from 8.2 to 8.3, at the same time brining support for PHP 8.5
100
Norbert Orzechowicz @norbert-tech.bsky.social · 07/01/2026
flow-php/etl-adapter-excel - excel adapter can now write to excel files, previously it was only reading. With this also our playground received excel support!
100
Norbert Orzechowicz @norbert-tech.bsky.social · 07/01/2026
flow-php/pg-query - a php extension based on libpg providing parser / ast / deparser - thanks to it, flow-php/postgresql can parse and existing query string and turn it into query builder or perform advanced manipulations / static analysis!
100
Norbert Orzechowicz @norbert-tech.bsky.social · 07/01/2026
Flow #PHP 0.30.0 is out! github.com/flow-php/fl... flow-php/postgresql - is a dedicated Flow PHP Client for #PostgreSQL focused on parsing/query building. It's focused and optimized for PostgreSQL, powerful DSL makes building even the most complex queries programmatically.
github.com
Release 0.30.0 · flow-php/flow
[0.30.0] - 2026-01-06 Added #2130 - Allow preserving existing values during DBAL upsert - @stloyd #2129 - Schema::isSame to use it for early exit merge operation when schema is the same - @norbert...
100
Norbert Orzechowicz @norbert-tech.bsky.social · 05/01/2026
No more manual string building. It's immutable, composable, and generates parameterized queries. Check the screenshot for a quick example #PHP #PostgreSQL #DataEngineering
000
Norbert Orzechowicz @norbert-tech.bsky.social · 05/01/2026
Building SQL queries with optional filters is messy. If-statements everywhere. String concatenation. Easy to mess up. Flow PHP now has a fluent condition builder for PostgreSQL queries. Build WHERE clauses incrementally. Add conditions when they exist, skip when they don't.
100
Norbert Orzechowicz @norbert-tech.bsky.social · 02/01/2026
Neither of them is good or bad, is a matter of preference, I come from Apache Spark, I do prefer DSL over constructors, because I believe that in a bigger picture DSL improves code readability. Which one and why do you prefer?
000
Norbert Orzechowicz @norbert-tech.bsky.social · 02/01/2026
The reason for using functions like df() instead of new DataFrame is readability. ETL pipelines are often complex chains of transformations. Those code samples are identical, one creates objects through factories hidden behind simple functions, other is using constructors
100
Norbert Orzechowicz @norbert-tech.bsky.social · 02/01/2026
From time to time I'm getting a feedback that Flow #PHP DSL is "ugly". I disagree! it's just different than what most devs are used to. Flow DSL is based on underscore, lower case functions that under the hood are creating objects. Yes, Flow is object oriented!
100
Norbert Orzechowicz @norbert-tech.bsky.social · 31/12/2025
Pagination is one the techniques to retrieve large data from database. Flow #PHP adapter for #PostgreSql provides 3 different types: - limit offset - key set - cursor Do you know which one is the least scalable?
010
Norbert Orzechowicz @norbert-tech.bsky.social · 29/12/2025
Flow #PHP playground is a PHP compiled to #WASM with multiple extensions allowing us to run #ETL pipelines in the browser. One of the recent additions was #excel support. try it yourself: flow-php.com/playground/...
010
Norbert Orzechowicz @norbert-tech.bsky.social · 25/12/2025
totally, that's the whole purpose, it can move data between source/destination applying transformations on the fly! Feel free to join our discord in case you have more questions
010
Norbert Orzechowicz @norbert-tech.bsky.social · 25/12/2025
A top request with reports? Saving them as XLSX files. That's why we taught Flow #PHP to master #Excel. flow-php.com/documentati... Marry Christmas Everyone! 🎄🎁
flow-php.com
Documentation - Flow PHP - Data Processing Framework
Documentation
100
Norbert Orzechowicz @norbert-tech.bsky.social · 22/12/2025
Data processing in #PHP is still in it's early stages. Don't believe me? Look at your system and tell me how it's handling imports/exports. Is it perhaps hand written importer/exporter? Any chance it's using file_get_contents? What stops you from using a Data Frame?
000
Norbert Orzechowicz @norbert-tech.bsky.social · 18/12/2025
flow-php/postgresql received Client::explain() : Plan feature This means that we can now programmatically extract and analyze postgresql query execution plan! More details in flow-php.com/documentati...
000
Norbert Orzechowicz @norbert-tech.bsky.social · 16/12/2025
#8 If you find my work useful, please consider sponsoring me at flow-php.com/sponsor/
flow-php.com
Sponsor - Flow PHP - Data Processing Framework
Flow is a PHP-based, strongly typed data processing framework with low memory footprint that can process various data sources consistently. It offers a unified API for all data sources, including CSV, JSON, XML, Text, Parquet, Avro, Rest API, RDBMS, Elasticsearch / Meilisearch. Flow not only enables you to process various data sources consistently, but also strives to accurately detect data types and cast them to the appropriate PHP types.
010
Norbert Orzechowicz @norbert-tech.bsky.social · 16/12/2025
#7 I highly encourage you take a look at our docs and share your feedback! flow-php.com/documentati...
flow-php.com
Documentation - Flow PHP - Data Processing Framework
Documentation
100
Norbert Orzechowicz @norbert-tech.bsky.social · 16/12/2025
#6 And this is only a beginning! What's comming next is going to make extracting data from postgresql a piece of cake. We are working on dedicated Flow PostgreSQL extract that would let you process PostgreSQL data based on any custom query string!
100
Norbert Orzechowicz @norbert-tech.bsky.social · 16/12/2025
#5 flow-php/postgresql is using flow-php/types to convert data between PHP and PostgreSql that you can easily extend in order to provide your own custom converters!
100
Norbert Orzechowicz @norbert-tech.bsky.social · 16/12/2025
#4 Last but not least, PostgreSql Client interface! with built in support for Row Mappers 🤯 It comes with a simple Constructor Mapper available out of the box but we are already working on providing bridges for: - cuyz/valinor - crell/serde
100
Norbert Orzechowicz @norbert-tech.bsky.social · 16/12/2025
#3 On top of AST Nodes from parser we have probably the most advanced PHP Query builder ⚙️ Thanks to experience of other amazing projects like JOOQ, Dapper or sqlx we crafter very elegant fluent interfaces helping you create any query you can imagine! flow-php.com/documentati...
flow-php.com
Documentation - Flow PHP - Data Processing Framework
Documentation
100
Norbert Orzechowicz @norbert-tech.bsky.social · 16/12/2025
#2 Parser Thanks to awesome github.com/pganalyze/l... our parser can break any valid postgresql query string into AST. It works with a single or multiple queries statements. Super helpful for adjusting programmatically any query (for example for pagination or validation)
github.com
GitHub - pganalyze/libpg_query: C library for accessing the PostgreSQL parser outside of the server environment
C library for accessing the PostgreSQL parser outside of the server environment - pganalyze/libpg_query
100
Norbert Orzechowicz @norbert-tech.bsky.social · 16/12/2025
#1 Did you ever had to make a tradeoffs between using a query builder and using a database specific features like CTE in #postgresql? Not any more flow-php/postresql is a brand new library that just joined Flow #PHP Ecosystem! flow-php/postgresql comes with 3 building blocks 👇
110
Norbert Orzechowicz @norbert-tech.bsky.social · 12/12/2025
Flow #PHP now supports PHP 8.5. Dropped 8.2, moved to 8.3 for development, added support for 8.5. 0.29.0 coming soon. github.com/flow-php/fl...
github.com
Enabled support for php 8.5 in github actions by norberttech · Pull Request #1906 · flow-php/flow
Resolves: #1905 Change Log Added support for php 8.5 Fixed Changed Removed Deprecated Security
000
Norbert Orzechowicz @norbert-tech.bsky.social · 08/12/2025
As you can imagine, creating query builders for whole SQL (not only INSERT/DELETE/UPDATE/SELECT) is a maaaaaasive task. That's why new Flow will come a bit later, maybe as a 🎄🎁 from 🎅
010
Norbert Orzechowicz @norbert-tech.bsky.social · 08/12/2025
flow-php/postgresql library is an evolution of flow-php/pg-query that started as a simple parsers and already evolved into whole postgresql library that comes with query builders for pretty much anything available in postgresql syntax until version 17 🤯
110
Norbert Orzechowicz @norbert-tech.bsky.social · 08/12/2025
I'm pushing release of next Flow PHP version by a week (maybe 2). There are two things I would like to include in the next release: - support for PHP 8.5 (and migrating codebase to 8.3) - first release of flow-php/postgresql library
100
Norbert Orzechowicz @norbert-tech.bsky.social · 05/12/2025
flow-php/pg-query quickly escalated from "I just want to parse sql to AST" into "why not build a proper query builder?" 😅 So there is, #PHP Query Builder for #PostgreSQL inspired by JOOQ (API will change, this is just PoC)
011
Norbert Orzechowicz @norbert-tech.bsky.social · 03/12/2025
Flow #PHP library for parsing SQL flow-php/pg-query just got significantly better! Now it can not only turn query into AST but also convert AST to nicely formatted string! flow-php.com/playground/...
010