explaingit

ninodafonte/read-model-elasticsearch

Analysis updated 2026-07-09 · repo last pushed 2021-01-20

PHPAudience · developerComplexity · 2/5DormantSetup · moderate

TLDR

A PHP library that syncs data from Broadway event-sourced applications into Elasticsearch for fast searching and filtering. It translates event updates into a format Elasticsearch can understand, creating a read model optimized for quick lookups.

Mindmap

mindmap
  root((repo))
    What it does
      Syncs data to Elasticsearch
      Creates read models
      Translates event changes
    Tech stack
      PHP
      Broadway framework
      Elasticsearch
    Use cases
      E-commerce product search
      Banking ledger lookups
      Fast data filtering
    Audience
      PHP developers
      Broadway users
      Complex system builders
    Setup
      Match ES versions
      Version 0.7 for ES 7
      Broadway dependency
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Add fast product search to a Broadway-based e-commerce platform by syncing product details to Elasticsearch.

USE CASE 2

Enable quick filtering and searching through thousands of records without recalculating event history on every page load.

USE CASE 3

Keep a search engine continuously in sync with an event-sourced application so users always see current data.

What is it built with?

PHPBroadwayElasticsearch

How does it compare?

ninodafonte/read-model-elasticsearchagentpietrucha/ks_affiliationmungell/twitteroauth
Stars11
LanguagePHPPHPPHP
Last pushed2021-01-202012-01-21
MaintenanceDormantDormant
Setup difficultymoderatemoderatemoderate
Complexity2/53/52/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires a running Elasticsearch instance and version matching between the package and your Elasticsearch server (e.g., package 0.7 for ES 7).

No license information is provided in the repository documentation.

In plain English

This project is a bridge piece for developers using a PHP framework called Broadway. Broadway helps developers build applications that record every change as a sequence of events, which is an approach often used for complex systems like banking ledgers. The challenge is that while storing a log of events is great for accuracy, it is inefficient for querying data to display on a screen. This repo solves that by copying the final, current state of that data into a search engine called Elasticsearch, so the application can quickly search and retrieve it. At a high level, it acts as a translator and courier. When the main application updates its record of events, this tool reads those changes and formats them so they can be understood by Elasticsearch. Elasticsearch is a specialized database built for fast text searching and filtering. By moving data there, the application gets a "read model", a pre-formatted version of the data designed specifically for quick lookups, rather than forcing the system to recalculate the full history every time a user opens a page. This tool is built for PHP developers who are already using the Broadway framework and need to add robust search capabilities to their application. For example, if someone built an e-commerce platform where every order and inventory change is tracked as an event, they would use this to automatically push product details into Elasticsearch. That way, customers can instantly search and filter through thousands of products by name, category, or price without slowing down the core system. The main thing to note is its reliance on specific versions. The project is tied to the underlying search engine, so developers need to match the version they install to the version of Elasticsearch they are running. For instance, if a team is using Elasticsearch version 7, they must use version 0.7 of this tool. It is a focused utility that does one job: keeping Elasticsearch in sync with a Broadway-based application.

Copy-paste prompts

Prompt 1
I have a PHP application using Broadway for event sourcing. Help me set up read-model-elasticsearch to sync my data to Elasticsearch, including which version of the package I need for my Elasticsearch version.
Prompt 2
Write a Broadway read model class that uses read-model-elasticsearch to project product data (name, category, price) into an Elasticsearch index for fast searching.
Prompt 3
My Broadway application tracks inventory changes as events. Show me how to configure read-model-elasticsearch so that every inventory update is automatically pushed to Elasticsearch for quick lookups.

Frequently asked questions

What is read-model-elasticsearch?

A PHP library that syncs data from Broadway event-sourced applications into Elasticsearch for fast searching and filtering. It translates event updates into a format Elasticsearch can understand, creating a read model optimized for quick lookups.

What language is read-model-elasticsearch written in?

Mainly PHP. The stack also includes PHP, Broadway, Elasticsearch.

Is read-model-elasticsearch actively maintained?

Dormant — no commits in 2+ years (last push 2021-01-20).

What license does read-model-elasticsearch use?

No license information is provided in the repository documentation.

How hard is read-model-elasticsearch to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is read-model-elasticsearch for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.