1. Do you have projects using your full stack, exa...
# general
j
7. Do you have projects using your full stack, exactly as your vision is? I mean I see quite often people follow architecture guidelines for 50%, but often fall into the pitfalls you mention because we need a 'quick fix', which messes up your architecture. It requires a strong champion at the customer to actually keep everybody at the architecture, and often you have many different opinions on architecture. 8. 'However, it's essential to consider whether this architecture might be an overcomplication for some use-cases.' => I think it's good you mention this in your article about the Lamda architecture. The full architecture is very nice for big enterprises, but most companies have more low-level issues to worry about and are not troubled with the whole 'predictive maintenance' story for example. The Kappe architecture is probably where you start, and later on you might evolve to Lambda? 9. I really like the tools you use, accept I think Node-Red for the speed layer seems a bit odd? I mean it's powerful and easy, but it's not really build for programming objects and classes imo. why do you put NR in the recommended products there? 10. What is exactly the difference between your Data warehouse and the IIoT database? The IIoT database contains more processed data? 11. At UMH, you guys are developing the architecture and product further? Are you also implementing this arhitecture at customers, or do you work with integrators? I'm curious about your approach. I ask these question not to critisize, but I like to learn and get other peoples insights. I really like the approach of using existing tools and not to reinvent the wheel. This is how we bring value at customers. So great work and thanks for sharing this. 😀
j
GIve me some time to give you a proper answer on this one 🙂
j
Take as long as you need!
j
1. Debezium: we use it for CDC with postgres. Do you know other OSS CDC tools for postgres? If yes, it would be great to know them. I know some managed "postgres cdc" services that just use Debezium in the background 2. for this you can leverage a multi level architecture: have one UMH instance in the cloud (that fetches data from the online services), have one UMH instance per site (that connects to the MES/ERP system), maybe even have ones per PLC / production line (if you have there firewall limitations as well). Then connect the instances together using data bridges, so data coming in via the cloud will also be available on the edge. 3. I have so far no experience with it, maybe others here have it? 4. In the UMH, we try to abstract away as much kafka as possible. also, we are using redpanda, which is much more lightweight. for kafka-->kafka communication (we call it stream processors) we use benthos-umh (https://github.com/united-manufacturing-hub/benthos-umh) 5. blood and sweat when standing on the shopfloor and something is not working :/ 6. We do have materials about ignition and the UMH! check out this tutorial by @Denis :

https://www.youtube.com/watch?v=cXJFERQHZc4â–¾

Point 7: - We go for a "Apple + OSS" approach in terms of architecture: - do whatever you want with the OSS version, modify, change, etc.. - But as soon as you want enterprise support, you need to go for the "full package", where you have some customization options and a great user journey, but cannot do everything (similar to an apple device). - A lot of companies want to customize every single aspect, but then struggle quite heaviliy to support it in the long run. Some companies want to go for pure MQTT, because "kafka is too complicated", but neglect that MQTT has a lot of missing features that result in latent bugs over time - so with the UMH you can only go for the full experience, but in this way we can guarantee a certain amount of stability. if every one of our companies uses the exact same Node-RED version, the exact same Grafana one, etc., we can (and have!) set up a lot of automated testing that checks for any issues when releasing new versions, thus decreasing the amount of maintaince required - there is no need to scrap everything that one has though, you can simply let the whole UMH run in parallel to whatever architecture you have, and connect it selectively. with this you can start "slowly" and start gaining trust in the overall system, until you are at a point where you ask yourself "why do I even need this custom weird database? thats just too much effort"
8. Like said before, we only have a single architecture and a single product. We provide abstractions on top of it, so that also simple use cases can be done easily with it
9. Node-RED vs benthos is one of my favorite topics to talk about. You use Node-RED as kind of the dirty but efficient way of getting "something" done. You can give it to any OT person, and they will be able to do something, which is better than setting up a couple of hundred meetings to lay down the data model, and then still make mistakes. Then for the stuff that you need to scale (and that are worth it to scale), you can redo the logic properly in a stream processor of your choice (which is in our case benthos)
10. Data Warehouses are the OLAP databases, where data analysts work on. IIoT database is the OLTP database, for daily operations on the shop floor
11. We are continiously improving it! Try it out: https://management.umh.app Mostly we are integrating it ourselves / enabling the customer to work it themselves.
d
@Jermuk Take these questions and answer and put it in a QnA on the webpage so more people can read it.. it is good questions and answers.
j
Thanks for your reply! 1. I don't know any tools, so that's what peeked my interest, we just set up cdc in the databases (Postgres en MSSQL) and have microservices that process different tables. 4. Oh, so you don't really have specific conventions on how to publish MES/ERP/... on Kafka, you just provide the service? 5. Ok, so you worked on a shopfloor for a few years and came up with this architecture? :p 6. Yes, I saw the Ignition video 7. Nice approach 9. Ok, I understand that nuance 10. So they contain quite the same data?
j
1. There are different methods of CDC. The trigger method does not require any other tools, the WAL method indeed does (like Debezium). Here is a good overview: https://www.astera.com/type/blog/change-data-capture-postgresql/ 2. We have a standardized data model, if you mean that? We don't have a standardized architecture that we enforce for how many UMH instances one has, because this is very much dependent on the customer and industry. ALso in general, we don't like to offer services, because that typically means our product is not so good yet, that its not yet self service 3. exactly, and mainly the part of "simply connecting stuff" as a SI role (before we were a product company). so not the high level people drawing ncie boxes in powerpoint 7. what do you mean contain quite the same data?
also would it be OK if I sumamrize our discussion and write a small blog article liek @DanielH suggested?
j
Ofcourse, feel free to write something about it. I mean do the IIoT database and the data warehouse contains the same data? I don't quite fully understand the difference between the two, except from who is using those.
j
both of them can contain the same data, but usually the data warehouse only has the aggregated ones in it. in every case: its a different user and its also different database with different queries. Typically the data warehouse is something like snowflake, where you have few (but big) inserts and a lot of very long queries. IIOT you have something like postgres with a lot of small inserts, and only small queries. You seprate them, because you don't want to overload the production database / postgres with a very big query by an unexperienced data scientist. That is kind of the historical context.