
·E214
#214 Daten aus Spotify & Co: Architektur einer skalierbaren API-Data-Pipeline
Episode Transcript
[SPEAKER_01]: Im unserem Job, als Softwareentwickler in, bekommen wir Anforderungen, Herausforderungen und Probleme, die es zu lösen gilt.
[SPEAKER_01]: Oft nutzen wir Programmierungen und Code, um das zu tun, um diese Problem zu lösen.
[SPEAKER_01]: Denn Beruf selbst ist dabei ein kreativer Beruf.
[SPEAKER_01]: Das Toller an kreativen Sachen ist, es gibt hunnerte Wege, wie man eine Anforderung, eine Herausforderung, oder ein Problem löst.
[SPEAKER_01]: Verschiedene Lösungsmöglichkeiten zu durchdenken ist eine Fähigkeit, die man mit der Erfahrung lernt.
[SPEAKER_01]: Und auch Wolfgang und ich find es immer wieder spannend neue Wege zu lernen, um unsere Probleme zu lösen.
[SPEAKER_01]: In dieser Episode machen wir genau das, eine Design beziehungsweise echtekture Diskussion.
[SPEAKER_01]: Wie würdest du Punktpunktpunkt bauen?
[SPEAKER_01]: Wolfgang hat eins seiner Side-Projects mitgebracht, welches er wirklich gebaut hat, und er interviewt mich, an die dazu, wie ich das Problem lösen würde.
[SPEAKER_01]: Und bevor du nun einfach diese Episode zu Ende hörst und uns danach wieder vergisst, [SPEAKER_01]: Ich würde mich sehr freuen, deinen Lösungsweg kennenzulernen.
[SPEAKER_01]: Schreib uns einfach eine E-Mail oder kommen die Discord-Community nach der Episode.
[SPEAKER_01]: Jetzt aber genug von mir, nun zu Diskussion viel Spaß.
[SPEAKER_00]: In der ganzen letzten Episoden gesehen habe bei unserer Redezeit, dass du viel zu viel Redes ein viel zu viel Fragen stehst, dann werden wir den Spießmal ins Umdrenn und wer vielleicht die Episode 144 angehört hat, da ging es um eine Architektur diskussion, die wir geführt haben, weil da grüne Ande seinen Öl verbrauch optimieren wollte und da ein Krollerschreiben wollte, ins Kraper um den Ölpreis zu optimieren.
[SPEAKER_00]: habe ich mir gedacht, wir machen meine ähnliche Episode, aber diesmal stelle ich die Fragen und interviewen den Andy, wie man die perfekte Architektur, den für ein Soffte Projekt zu macht.
[SPEAKER_01]: Neffes Intro, und jetzt sehen wir mal die Fakten gleich.
[SPEAKER_01]: Erstens.
[SPEAKER_01]: für Zweifel ganz stark, dass du dir die Redezeit der letzten Episoden wirklich analysieren lassen hast.
[SPEAKER_01]: Weil ich bin mir nicht sicher, ob du genau weißt, wie du dieses Paisenskrippt, was wir im Repository haben, die dies errechnet erst mal startest, dass sie erste Boestelle.
[SPEAKER_01]: Die zweite Boestelle, wer hat diese Episodicher vorgeschlagen?
[SPEAKER_01]: Du oder ich?
[SPEAKER_01]: Ich würde fast sagen, dass dein Intro war Fake News, aber pass auf.
[SPEAKER_01]: Es gibt ja Leute, die gönnen dir das, deswegen lasse ich das jetzt nur so stehen.
[SPEAKER_01]: Ja, das sind alles die Details, sind jetzt so wichtig, die Details.
[SPEAKER_01]: Das ist der Unterschied zwischen jemanden, dennoch wirklich arbeitet und jemand der berät.
[SPEAKER_01]: Ja, von daher.
[SPEAKER_00]: Genau, darum kannst du mir jetzt im Detail erklären, wie du etwas bauen würdest und in dem Fall ist es jetzt sogar ein Projekt, was ich gebaut habe.
[SPEAKER_00]: Das heißt, du kannst mir zerklären, was ich falsch gemacht habe, dadurch auch.
[SPEAKER_00]: Ich kann gerne so zählen, was ich glaube, was ich falsch gemacht habe, am Ende.
[SPEAKER_00]: Aber du bist mir jetzt zerklären, wie du das im Idealfall bauen würdest, bist du bereit an dich.
[SPEAKER_00]: Ich bin immer bereit, schon mal was er gibt.
[SPEAKER_00]: War, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, oh, [SPEAKER_00]: Also für alle, die die Episode 154 nicht geherrt haben oder so wieder an die sich nicht mehr rennen kann.
[SPEAKER_00]: Was wir jetzt versuchen werden, ich schildere ein Problem und zwar das Problem von einem Softwareprojekt in dem Fall Open-Bottcast, was ich mal gemacht habe und der Andy erklärt mir.
[SPEAKER_00]: Wie er an Hunter Requirements die Architektur von so einem Softwareprojekt umsetzen würde, was seine bevorzugte Architektur ist und natürlich auch wie man zu dieser Architektur hinkommt.
[SPEAKER_00]: Also an die wird jetzt intelligente Fragen stellen, Schätzchen mal oder hast du vor?
[SPEAKER_00]: Also Schätzchen immer intelligente Fragen eigentlich, kann man die Vorbegnäme um [SPEAKER_00]: An ein sinnvolles Architektur, die ja gerade am Ende, wenn man das vom Weitbrot stehe, erstellen würde, dann kommt.
[SPEAKER_01]: Also eigentlich spielen wir den Arbeitsalltag, eine Softwareengineering Team, oder eine Softwareengineering-Person nach.
[SPEAKER_01]: Weil mit der Effekt kommen wir immer Leute mit irgendwelchen Problemen, ich will das.
[SPEAKER_01]: Und dann müssen wir uns überlegen, wie lösen Videosproblemen.
[SPEAKER_01]: Und in der Regel ist Coach schreiben ein Teil der Lösung des Problems.
[SPEAKER_01]: Und das tun wir jetzt gerade, ne?
[SPEAKER_01]: Also wie würden wir etwas bauen?
[SPEAKER_00]: Genau.
[SPEAKER_00]: Und in dem Fall Open-Bottcast ist eigentlich ein gutes Projekt, was stellvertretend führen ganz allgemeines Problem steht, was ich auch so ständig erlebe in der Wirtschaft, teilweise auch in meiner Konzaltentätigkeit, weil es geht ganz auf darum, [SPEAKER_00]: Ich habe irgendwelche Schnittstellen, muss mir Daten von irgendwo herholen, muss die verarbeiten und dann wird dazu verfügend stellen.
[SPEAKER_00]: Also so eine klassische Data-By-Blein, die man da verwendet und drum ist, es eigentlich in ideales Beispiel, weil man da abstrahieren kann, auf ein Problem, was wahrscheinlich ganz viele da draußen auch da täglich haben.
[SPEAKER_00]: Also dann starten wir mal los und nachdem es hier um Podcasts [SPEAKER_00]: Analytics Daten geht, muss ich vielleicht mal vorab das ganze Botcast System kurz beschreiben, wie das funktioniert, an die Du kennst es ja hoffentlich und hast dich jetzt einigermaßen damit beschäftigt.
[SPEAKER_00]: Aber vielleicht für alle die jetzt keine Botcast selbst zu diesen wie Botcasts grundsätzlich funktionieren.
[SPEAKER_00]: Also der Botcast standard ist ja ein ganz alter RSS-Feed standard.
[SPEAKER_00]: Das heißt, es ist eigentlich nur [SPEAKER_00]: Na RSS-Feed, XML-Datei, die irgendwo liegt und sagt, wo liegen die MP3-Dine der einzelnen Episoden?
[SPEAKER_00]: Es kann irgendein Server sein, mittlerweile hat sich doch gesetzt, dass man da eigentlich so hosting platformen verwendet.
[SPEAKER_00]: Das kann natürlich selbst gehostet sein, aber üblicherweise verwendet man da eine hosting platform, die die MP3-Dine zu verfügend stellt, den RSS-Feed zu verfügend stellt, nettes Interface, wo man seine Episoden anlegen kann.
[SPEAKER_00]: und das Ganze dann verteilt wird.
[SPEAKER_00]: Das sind mal so die Kerninfrastruktur, die im Hintergrund liegt.
[SPEAKER_00]: Ist eigentlich nur ein Dummer-Webserver, der MP3-Dreitertein und ein RSS-Fied ausliefert.
[SPEAKER_00]: Auf der Kleienzeite gibt's dann die Apps, die zum Beispiel auf einem Handy, laufen und einfach die Informationen aus dem RSS-Fied.
[SPEAKER_00]: Sie holen, wissen dann, wo die MP3-Dreiterteiligt und die MP3-Dreiterteil downloaden und dann kannst du schon eine Episode anhören.
[SPEAKER_00]: Das sind mal so die einfachste Form, wie man botcast anhören kann und ausliefern kann.
[SPEAKER_00]: Und jetzt gibt es natürlich die ganz großen Filmen, wie Spotify hat Apple, die sich so zwischen drin irgendwo reinschwindeln.
[SPEAKER_00]: Und die eigentlich vorgauken, dass sie so ein eigenes Botcast-Ecosystem anbieten, die ihr deine Botcast und irgendwie was Beschliges machen, was sie eigentlich gar nicht machen, weil die machen auch nur dieselbe.
[SPEAKER_00]: Die holen sich den RSS-Vit, schauen nach, wo die MP3 da da, und dann wird die MP3 da da am Ende gestreamt oder ...
[SPEAKER_00]: heruntergeladen und unter einmal angehört wie das auch immer dann jener App abläuft.
[SPEAKER_00]: Das Problem an dem ganzen, wenn Apple und Spotify dazwischen hängt, dann haben die eigentlich an einem Monobole auf die Interaktionen, die bei dem User stattfinden.
[SPEAKER_00]: Also, wenn du die Play-Taste drückt, weiß es Spotify, weiß es Apple, aber du als Hoster, wie als Hoster, die einfach nur eine RSS, da da ein Bieten wissen natürlich nicht, ob du [SPEAKER_00]: Und jetzt kommen genau diese Analytics-Daten in Spiel, weil wir als Bordkaste wissen, dadurch interessiert, wie viele Leute haben, der dem Play-Baten getrückt, wie viele Leute haben, den Stop-Baten getrückt.
[SPEAKER_00]: Nach einer halben Stunde zum Beispiel, also wie viele Leute haben unsere Episode nur zehn Minuten gehört, nur 20 Minuten gehört, nur 30 Minuten gehört.
[SPEAKER_00]: Da geht es uns der Löcher jetzt nicht um konkrete Daten, welche Person hat das gemacht, so ne im Allgemeinen, wie interessant war eine Episode.
[SPEAKER_00]: Und diese Daten besitzt nur Spotify und Apple aktuell.
[SPEAKER_00]: Und genau diese Daten sind natürlich relevant für die Podcast und werden daher auch für die Podcast angeboten.
[SPEAKER_00]: In einem Dashboard, du lockst dich bei Apple ein, du lockst dich bei Spotify ein, als [SPEAKER_00]: Wie viele Personen, wie viel Prozent aller Hörer innen, haben denn die Episode ganz gehört zum Beispiel.
[SPEAKER_00]: Oder wo gibt es ein Drop, wo wird die Episode unintressant, wo hat Andy wieder einen Flachwitz erzählt und wir sehen ein Drop von 30 Prozent.
[SPEAKER_00]: Und was wir jetzt bauen wollen in diesem Beispiel und wozu ich jetzt Andy interviewen werde, wie er das bauen würde, ist ...
[SPEAKER_00]: Ein System, das genau diese Daten, sich holt und in einem System, in einer Datenbank, zusammenfasst.
[SPEAKER_00]: Das heißt, wir wollen die Daten von Apple haben, wir wollen die Daten von Spotify haben, wir wollen die Daten von unserem eigenen Hoster haben, als von diesem Webser, weil er die MP3 der Dein Ampietet, vielleicht gibt es auch noch andere Plattformen, wie an die Du bist der Spezialist, was gibt es da in Deutschland, so diese ganzen RTL Podimot, wo es so unserem Podcast überall angemeldet, die kann diese Plattformen alleekern.
[SPEAKER_01]: Ich hoffe ich beleidig jetzt niemanden, der uns da hört, auf irgendwelchen Plattformen.
[SPEAKER_01]: Es gibt noch so was wie dieser, ich weiß gar nicht, ob es ein deutsch-sunternehmen, es glaubt ein von zusisches Podimo RTL Plus und so weiter und so vor dem Endeffekt ist es ja, wie der Wolf gerade schon erklärt hat.
[SPEAKER_01]: Naart no-brainer.
[SPEAKER_01]: diesen RSFied einfach an alle Plattformen zu geben, denn alle Plattformen müssen sich das vom Originalen hoster ja daunloaden oder ziehen oder streamen oder was was der Geil nicht deswegen sehe ich persönlich halt kein nachteil diesen RSFied nicht einfach ich sag mal wie eine Gießkanne durchs Internet zu verteilen das ist ja nur unser Vorteil wir sind leider nicht so groß [SPEAKER_01]: dass wir irgendwelche exclusive deals mit Spotify oder Apple haben, wie zum Beispiel Felix Lobrecht hat oder andere große oder Joe Rogan oder andere große Podcast.
[SPEAKER_01]: Dann werden diese SSV natürlich nicht wie eine Gießkanne verteilt.
[SPEAKER_01]: Aber bei denen läuft das ganz genau so wie bei uns, dann wird der SSV nur bei Spotify reingepackt und Spotify zahlt ganz viel Geld, dass dieser Podcast nur auf dieser Plattform ist.
[SPEAKER_01]: Aber ne, deswegen wir sind auch bei RTL Plus und bei dieser und allem drum und dran uns hat der keinen Nachteilflug.
[SPEAKER_00]: Und wir bekommen auch kein Geld von diesem Blattformen, also die nehmen unseren Kontent liefern den Kontent aus, auch wenn ihr für Spotify zahlt, wir bekommen genau nul sent dafür, dass das über diese Blattformen ausgeliefert wird.
[SPEAKER_01]: Genau, es kann natürlich sein, dass ihr, wenn ihr diesen Podcast hier hört, Werbung von diesen Plattformen bekommt, wenn ihr da in einem Freed hier seid und zum Beispiel keine Padshapsgübschen habt.
[SPEAKER_01]: Aber auch davon bekommen wir nichts.
[SPEAKER_01]: Genau, leider.
[SPEAKER_01]: Also, wenn du wenn du zum Beispiel uns über Spotify hörst und nicht für Spotify zahlt, dann kommt da hier und da mal Werbung führten was.
[SPEAKER_01]: Das haben wir nicht abgesignet, also auch wenn Werbung von Rheinmetall kommt.
[SPEAKER_01]: Damit haben wir nicht am Hut, da haben wir einen Mittallern einfach sehr viel gegettet und ich glaube, wir können es auch gar nicht rein.
[SPEAKER_00]: Ja, abgesehen, jetzt haben wir es schon in dem Fall, weil wir das einmal gemeldet haben, dass unser Botkastot zur Verfügung steht und damit akzeptieren wir das natürlich auch.
[SPEAKER_00]: Oder müssen wir es akzeptieren, sonst kommt es so nicht bei es Spotify rein grundsätzlich.
[SPEAKER_01]: Wir sind aber nicht in eine Lage anzueklicken, wir wollen nur Werbung aus dem Foodbereich und nicht aus dem Waffenbereich.
[SPEAKER_00]: Aber man merkt schon, dass diese Plattformen sich zwischen euch, als Hörer in den und uns als Podcast erschiebt und dadurch die natürlich die Macht auch haben, erstens das ganze zu steuern, also wer da auf was finden zum Beispiel oder hören und sie haben natürlich auch die ganzen Statistikdaten, die wir und Umständen auch verlieren, weil es kann sein, dass die [SPEAKER_00]: gewisse Dateien zwischen Cashen, das heißt, die liefern die MP-Treiterteil 100 mal aus, an 100 Hörer innen und wir sehen aber nur einen Download.
[SPEAKER_00]: Kann natürlich besieden bei solchen Plattformen.
[SPEAKER_00]: Und da heißt es so wichtig, dass man die Daten von diesem Plattformen auch bekommt.
[SPEAKER_00]: Jetzt heißt Boardcaster ist es natürlich super, nervig, wenn man da da täglich sich an irgendwelchen Dashboards einlocken muss und bei Apprenten durch eine tofakte Authentikation durch muss.
[SPEAKER_00]: Damit man da einmal diesen Graf sieht und am nächstenack muss man sich wieder neu einlocken.
[SPEAKER_00]: Und so weiter.
[SPEAKER_00]: Und man hat diese Daten dann auch nicht kombiniert, irgendwie gemeinsam.
[SPEAKER_00]: Das heißt, dass man vielleicht die Appeltdaten und die Spotify daten zusammen sieht.
[SPEAKER_00]: Wie sind die durchherraten, wann springen die Hörer in den ab?
[SPEAKER_00]: Also solche Informationen fehlen, wenn man das nicht in einem Zentralen Ort gespeichert hat, alle Daten die zur Verfügung stehen.
[SPEAKER_00]: Und genau das...
[SPEAKER_00]: haben wir mit OpenBotcast gelöst und genau um diese Architektur geht es heute also wie baut man so eine Data Pipeline, die alle Daten von diesem Plattformen abholt, regelmäßig und dann in irgendwann Form wieder zur Verfügung stellt, in dem Fall da einfachheit halber einfach über eine API, da kann dann Frontend dran hängen, da kann irgendwie ein Dashboard System dran hängen.
[SPEAKER_00]: Also es kann dann alles mögliche sein, aber es im Prinzip geht es mal um die Data-By-Plan, wie würde man so was bauen und wie gesagt, es trifft man wahrscheinlich im echten Leben ganz oft an, ihr arbeitet alle mit API, es muss irgendwo Daten ziehen, Daten verarbeiten, Speichern, es eigentlich ein klassisches Petern und darum, eigentlich auch sehr interessant, was der Andi dazu sagt und wie er das bauen wird.
[SPEAKER_00]: Jetzt grundsätzlich mal zum Verständnis an, die ist die Grundidee klar, was wir machen wollen.
[SPEAKER_01]: Wir haben eine Datei, die sagt, welche Daten findet man unter welcher Welt, das ist dein erstes Feed.
[SPEAKER_01]: Und diese Datei hat dann einen Episodentitel und die Datei hat einen Download URL zu der Episode selbst zu dem MP3.
[SPEAKER_01]: Dieses Datei, dieses Inventory, ist es ja eigentlich, wird an Services gegeben, wie Spotify, Apple, RTL plus dieser YouTube und Co.
[SPEAKER_01]: Diesen XML-Fiede regelmäßig und sagen ist eine neue Episode, wenn ja, laden Sie sich die Runde und Fügen diese in Ihre Datenbank ein.
[SPEAKER_01]: Und ich als End User, ich als Engineering-Kursk-Fan, greife dann immer nur auf Spotify, auf Apple, auf YouTube zu, die dann eigentlich den Proxy sich als Proxy dazwischen schalten, um mir ein besseres User intervester geben, als unser Host auskarten.
[SPEAKER_01]: Das ist korrekt richtig.
[SPEAKER_00]: Genau, so funktioniert Boardcasting, aber was wir jetzt bauen wollen, ist, dass wir die Analysse Daten von diesem Plattform bekommen.
[SPEAKER_00]: Also ist die Idee, was wir bauen wollen, so weit klar, auf High Level.
[SPEAKER_01]: Wir wollen die Zusatzinformation, die diese Proxies haben, vor einheitlichen, weil unsere Hoster diese nicht hat richtig.
[SPEAKER_01]: Das ist das so versteh ich das.
[SPEAKER_00]: Genau, wobei unsere Hoster kann eigentlich auch eine Quelle sein.
[SPEAKER_00]: Also vielleicht ist Spotify eine Quelle für Daten.
[SPEAKER_00]: Apple ist eine Apple Podcasts, ist eine Quelle für Daten.
[SPEAKER_00]: Unser Hoster, der die RSS-Datei zu fügen stellt, macht die auch Statistik, wie oft wird, wie ein Betreiter-Datei daungelode zum Beispiel.
[SPEAKER_00]: Also wir wollen schon diese Statistiken ausbekommen.
[SPEAKER_00]: Aber da hat man meistens ein besseren Draht zu dem eigenen Hoster, weil dem zahlt man ja.
[SPEAKER_00]: und dem Idealfall hat eine schöne API, die zur Verfügung steht, die man abgreifen kann.
[SPEAKER_00]: Aber im Prinzip geht es darum, ich habe mehrere APIs und möchte da die Daten abgreifen und bei mir in irgendeinem Internetsystem zwischen speichern.
[SPEAKER_01]: Aber der Hofstag hat ja schon in irgendeiner Art und Weise eine spezielle Rolle, denn ja, ich als End User.
[SPEAKER_01]: kann mir auch diesen erst S-Feed in den Browser öffnen.
[SPEAKER_01]: In diesem Sinne greifig auf den Podcast zu ohne einen Proxy, weil es Apple ist ja Appfüll, wollte ich ganz sagen.
[SPEAKER_01]: Es ist ein Appfüll, es ist ja so eine Art Proxiedertsischen.
[SPEAKER_01]: Wenn ich direkt auf den Host dazu greife, dann nehme ich den Proxy heraus, was das okay ist, aber...
[SPEAKER_01]: Ja, Hosta hat in diesem Sinne einen speziellen US-Kace-Orbischziehungsweise eine spezielle Situation, weil die Metreken des Hostas, ja die Metreken der einzelnen Proxies inkludieren.
[SPEAKER_01]: Angenommen unsere Episode wird tausend mal runtergeladen.
[SPEAKER_01]: Somit ist die Zahl bei dem Hosta tausend, weil es bei dem Spotify 300, wenn die einen ...
[SPEAKER_01]: Marktanteiber uns von 30 Prozent haben und Apple hat einen höhere Anteil von 15 Prozent und dann ist bei Apple die Zahl 150.
[SPEAKER_01]: Also die 350 von Spotify und Apple sind ja auch in der Zahl 1000 beim Hostor mit drin.
[SPEAKER_01]: Es ist gerekt, somit kann ich den Hostor ja nicht als proxie wirklich sehen und rechnen in meiner Pipeline.
[SPEAKER_00]: Also wir gehen jetzt schon relativ tief in das ganze Botkast-Ecosystem rein, braucht eigentlich jetzt gar kein Demerzein für die Architektur, aber du hast natürlich recht, Hoster hat eine andere Rolle.
[SPEAKER_00]: Es stimmt nicht ganz, dass der alle Download zieht, weil theoretisch ganz Spotify auch was zwischen Cashen.
[SPEAKER_00]: Das ist sie nachdem, was wir in Vertrag der Hoster mit Spotify hat, ob du und selber Hostest, ob du nicht selber Hostest bei YouTube ist es noch mal ganz anders bei YouTube bekommst du überhaupt keinen Informationen über den Download.
[SPEAKER_00]: Also, es ist ein komplexes System, was nicht so einfach ist, du hast im Großen und ganzen Recht, dass der Hoster übergehornet fast alle sieht, aber eben nur fast, aber ist für unsere Architektur jetzt auch irrelevant, was das wir Daten sind, wir wollen ja nur die Daten grundsätzlich mal bekommen, wie wir die dann auswerden, ist ja noch mal eine andere Sache.
[SPEAKER_01]: Haben alle Proxies, also Spotify und Apple und YouTube und so weiter in der API?
[SPEAKER_01]: Definire API.
[SPEAKER_01]: Restful GraphQLG-APC eine programmiert technische Schnittstelle, die nicht HTML ist, mit der ich ein definiertes Format wie Jason XML, YML, Toml oder was auch immer zurück bekommen, die ich Maschine sehr einfach verarbeiten kann.
[SPEAKER_01]: Definire ist sehr einfach.
[SPEAKER_01]: Ich mache einen hatte DP-Koll bekommen eine sehr strukturierte Form zurück.
[SPEAKER_01]: HTML-Achtung ist in dieser [SPEAKER_01]: Mit einer festgeschauktur, die sich nicht regelmäßig innen kann.
[SPEAKER_00]: Also was bei Appeln ist nicht stelle.
[SPEAKER_00]: Klassische Rest-Schnittstelle oder Restartig wurde es mal nennen.
[SPEAKER_00]: Auch bei Spotify ist teilweise GraphQL, teilweise eine Restartige-Schnittstelle.
[SPEAKER_00]: Funktioniert so weit bringt ihr Chasen.
[SPEAKER_00]: als Antwort zurück, aber jetzt kommt es große Arbeit, es gibt keine Dokumentation, es ist keine öffentliche API, die API liegt hinternemmel.in bei Applenend 2 Factor Offentication.in, der nur vier Stunden anhält, aber wenn du diese Hürde überspringst, dann hast du eine API, das Internet gibt für die Dersports von Applenen Spotify.
[SPEAKER_00]: Beim Hoster können wir mal annehmen, der hat eine schöne API, weil dem Zeichst du was, der bringt dir wirklich eine Dokumentation, da hast du einen Kie, einen klassischen Unkannster anfragen stellen.
[SPEAKER_01]: Du hast schon einer meiner nächsten Fragen beantwortet, das bedeutet alle Hoster haben pro Briter API's.
[SPEAKER_00]: Probrede er, dass sie nicht dokumentiert sind, aber nachdem wir im Web sind, kannst du natürlich jederzeit des Reverse entschieden relativ einfach, weil du siehst, ja was im Dashboard angezeigt wird, du kannst nachschauen, was bringen dir die APIs, das gäbe dir die APIs zurück, welche Chasen, Informationen, was bedeutet es ihr was?
[SPEAKER_00]: Aber du musst das Reverse entschieden, also du hast keine Dokumentation.
[SPEAKER_01]: Mir geht gar nicht um die Dokumentation-Rorums Reverse Engineering, mir geht so um das Stabilitätsversprechen.
[SPEAKER_01]: Ja, kann morgen umgestellt werden.
[SPEAKER_01]: Das ist mein Hintergrund, warum ich diese Frage stellen, nicht, dass, weil wäre es eine öffentliche Dokumentation natürlich, muss eine Firma kein Stabilitätsversprechend bringen.
[SPEAKER_00]: Aber, na ja, es ist schon mal der Unterschied, du bekommst halt nicht Bescheid gegeben.
[SPEAKER_00]: Das heißt, du merkst einfach, irgendwas hat sich geändert.
[SPEAKER_00]: Und sonst bekommst du ja üblicherweise schon eine Info, wann sich weiß, was ändert.
[SPEAKER_00]: Oder vielleicht wenigstens nennt Dark vorab.
[SPEAKER_00]: Also das wäre ja schon hilfreich.
[SPEAKER_00]: Aber in dem Fall erfährst du es eigentlich immer als dem Nachhinein.
[SPEAKER_00]: Oder noch schlimmer du kannst nur durch einen A-B-Test laufen, dass man mal die Schnittstelle, das eine zurückgibt und manchmal das andere.
[SPEAKER_00]: Muss ich das mit berücksichtigen?
[SPEAKER_00]: Das A-B-Testigen nehmen wir mal mal auf, so weil es sonst wird schon sehr, sehr komplex.
[SPEAKER_01]: Okay, dann lasst man's A-B-Testigen weg.
[SPEAKER_01]: Wollen wir ein fest definiertes Subset der Daten dieser Proxies oder wollen wir immer alle Daten, die uns alle geben beispielsweise.
[SPEAKER_01]: Ich nehme mal an, dass Apple und die IOS Version mit gibt und Spotify nicht.
[SPEAKER_01]: Du wirst startenpunkte haben, die ein Proxidier zur Verfügung gestellt, die ein anderer Proxidier nicht zur Verfügung gestellt.
[SPEAKER_00]: Also, die Plattformen haben ganz unterschiedliche Metriken, teilweise auch ähnliche Metriken, die sie anders nennen und so weiter, die sie anders berechnen.
[SPEAKER_00]: Also, das sind ganz unterschiedliche Daten.
[SPEAKER_00]: Jetzt zu einer Subsetfrage, die wir die Umdrehen.
[SPEAKER_00]: Würdest du alles fetschen, dass du zur Verfügung hast oder würdest du dich jetzt irgendwie, wenn du sowas baust, nur auf diese Metricken konzentrieren, die du haben willst?
[SPEAKER_01]: Das kommt auf die Metricken an, wenn zum Beispiel in irgendeiner Art und Weise aus welchen Gründen auch immer PIE Daten sind oder aus sensibletaten, dann muss ich natürlich ganz anders speichern und den Zugriff auf den Speichern regeln.
[SPEAKER_01]: Deswegen ist das meine Frage, was sich auch im Becken berücksichtigen muss, im Bezug auf Zugefrechte und Co.
[SPEAKER_00]: PIE hast du sowieso keine, weil es in alles agriierte Daten von Apple Spotify.
[SPEAKER_00]: Also wenn du die zur Verfügung hast, hast du noch nicht keine besseren persönlichen Daten.
[SPEAKER_00]: Die Frage ist ja eher, klarerweise, wenn du da jetzt dran gehst, dann bist du dir überlegen, okay, hat gern die Downloads, die Place solche Infos, aber natürlich gibt es ja ganz spezielle, sagen wir jetzt gibt die iOS-Version, noch die du angesprochen hast.
[SPEAKER_00]: Die würde es du dir jetzt im ersten Moment vielleicht sagen, eigentlich ist sie uninteressant.
[SPEAKER_00]: Aber es die Frage fetscht man dann gleich alles mit oder nicht.
[SPEAKER_00]: Also wir sprechen da schon von, ich wird mal sagen, so von 20 Endpoint, 20 verschiedene Metricin, die auch da, weil sie komplexe sein können, die du zur Proplattform zurückgekriegen könntest.
[SPEAKER_01]: Moment, du hast da gesagt, 20 Endpoints, 20 Metricin.
[SPEAKER_01]: Krieg ich jetzt 20 Metricin zurück oder kriege ich, muss ich 20 Metricin über 20 Endpoints regressen.
[SPEAKER_01]: Ja, du hast schon eher so 10 bis 20 Endpoints.
[SPEAKER_00]: Und das ist für jede Plattform gleich?
[SPEAKER_00]: Ja, die heißen natürlich unterschiedlich und sind auch leicht unterschiedlich, wie sie das machen natürlich und was sie dir an Daten zu Verfügung stellen.
[SPEAKER_00]: Also, bei Applebekommst du zum Beispiel natürlich keine Informationen über das Betriebssystem.
[SPEAKER_00]: Weil es ist immer iOS, bei Spotify bekommst du sehr wohl Informationen wie viele Leute haben das unter Android.
[SPEAKER_01]: Ja, okay, verstehe ich jetzt.
[SPEAKER_01]: Aber moment, du springst jetzt gerade zwischen Metrik und Entpolten.
[SPEAKER_01]: Das bedeutet, ich krieg die Informationen für die Betriebssystemverteilung bei Spotify über Spotify.com.
[SPEAKER_01]: API slash Betriebssysteme.
[SPEAKER_01]: Und die Downloadsang unter ap.com.
[SPEAKER_01]: Spotify.com.
[SPEAKER_01]: API slash Downloads.
[SPEAKER_00]: Es ist Bund gemischt.
[SPEAKER_00]: Klassisch, das ist keine schöne API, das ist eine Internet API und über manche Endpoints bekommt so 8 Metriken, über andere Endpoints, nur eine Metrik, die andere es verschachtelt, die andere nicht verschachtelt, also durchs zu alle Variationen an API möglichkeiten.
[SPEAKER_01]: Okay, dann ist aber, wenn eine Frage ja noch relevanter.
[SPEAKER_01]: Sind die Bekäuerminst, dass sich einen hattes Zapset an Metricken nehmen oder nehme ich alles aus wie von der LPA, LPA-Einpoint bekommen können?
[SPEAKER_01]: Ja, wir würdest du sparen.
[SPEAKER_01]: Da ich ja Speicher-Effizient bin, Green Economy und auch Dark Spaßam, sollten wir alle sein, würde ich nur das nehmen, was wir brauchen.
[SPEAKER_01]: Und deswegen frage ich nach den Requirements des Produktes, also bei, wenn wir im observability Gedanken sprechen, dann wundimmt man erst mal alles, was man kriegen kann und stellt sich später die Frage, welche Frage ich eigentlich stellen möchte, denn wenn du sagst, wir brauchen keine Verteilung auf Betriebssystem.
[SPEAKER_01]: Ebenne, weil du das nur von Spotify bekommst und ich von Apple Video grad gesagt hast, da gibt es ja jetzt zwei Wege, wie du das im Produkt hinten dran nimmst.
[SPEAKER_01]: Du kannst auch sagen, Spotify hat eine 40 Prozent Hege markt macht und ich rechne diese Betriebssystemverteilung dann hoch.
[SPEAKER_01]: Wenn du das machen möchtest in der Analyse, das weiß ich nicht und deswegen stelle ich diese Frage.
[SPEAKER_01]: Weil wenn du sagst, ich will da später machen, dann muss das Fiecher erst ein Weggelt werden und dann kannst du erst ab diesen Zeitpunkt die Analyzen ja erst fahren.
[SPEAKER_00]: Also ich kann dir vorweg nehmen, nachdem wir ja ein Produkt bauen, was dann andere Leute verwenden wollen.
[SPEAKER_00]: Es kommen garantiert die Leute um die Ecke und sind sie schon, die sagen, hey ich sehe diese Metrik in meinem Appell.
[SPEAKER_00]: Das Sport war rum, habe ich dir nicht in meiner Interneten auswärtung.
[SPEAKER_00]: Also die hast du ständig darum, würde ich empfehlen alle Endpoints zu nehmen oder alle Informationen zu speichern.
[SPEAKER_00]: Aber ist im Endeffekt auch egal, ob es jetzt 10 Endpoints sind oder 20 ist ja auch schon egal.
[SPEAKER_00]: Und da gesamtarchedektur wird sich da ja nicht nichts ändern, damit sprich.
[SPEAKER_00]: Meier du v.a.
[SPEAKER_00]: als Grabweib in die Wikwesten?
[SPEAKER_00]: Ja.
[SPEAKER_00]: Aber das ist ein Gütziger.
[SPEAKER_00]: Es sind sowieso ein Problem.
[SPEAKER_00]: Aber da kommen wir ja noch drauf.
[SPEAKER_01]: Welche Granularität müssen die Daten haben?
[SPEAKER_01]: Das bedeutet, in welchem Interval Willst du sagen, ist okay und welcher ist zu langsam?
[SPEAKER_01]: Also müssen wir in fünf Minuten Interval haben oder reicht einmal pro Tag.
[SPEAKER_01]: Also die Plattformen in Kranchen auch ihre Daten nur einmal täglich.
[SPEAKER_00]: Kennen wir die Zeitpunkte, wann die die Daten kranchen?
[SPEAKER_00]: Ja, kann man ganz gut, so meistens irgendwann so gegen Mittag-Runterum aus es Spotify wieder mal im Problem, dann gibt es auch drei Tage keine Daten, oder sie kommen mal bastunden zu spät, aber so grob irgendwann so in der Mittagszeit herum.
[SPEAKER_00]: Okay, also kennen wir es nicht, sondern wie nehme es an.
[SPEAKER_01]: Genau und du kannst ich nicht darauf verlassen.
[SPEAKER_01]: Okay, ich meine, meine Effekt ist, dass er selber problemen, wir machen das jetzt auf Podcasts, aber so wie checkfieren es, wann sich hat bei jedem Vorsicherungsvogleich, bei jedem Preisvogleich und so weiter.
[SPEAKER_00]: Genau, oder Trevago mit den Hotelpreisen.
[SPEAKER_00]: Alles.
[SPEAKER_00]: Alles.
[SPEAKER_00]: Okay.
[SPEAKER_00]: Okay.
[SPEAKER_00]: Danke.
[SPEAKER_00]: Danke.
[SPEAKER_00]: Es ist sehr allgemeines Problemen eigentlich.
[SPEAKER_01]: Du hast mir ja schon hingegeben mit den Metregen.
[SPEAKER_01]: Also was ich machen würde, ich würde mir ich würde sagen, ich focusiere mich jetzt auf 4 oder 5 Services, Spotify, Apple, RTL Plus und so weiter.
[SPEAKER_01]: Die würde ich mir dann für mein Dokument erstellen, ich würde die API's Reverse Engineering.
[SPEAKER_01]: Ich würde versuchen die Response, die ich da bekomme, mir die Metregen aufzuschreiben und diese mit deren UI zu matchen.
[SPEAKER_01]: Damit ich weiß, diese Zahl heißt, [SPEAKER_01]: Download Anlas Goday in der Response.
[SPEAKER_01]: Ja, das bedeutet, ich habe verschiedene Endpoints über verschiedene Endpoints kriege ich verschiedene Daten und ich versuche diese mit der UI zu matchen, damit ich erstmal weiß, was das ist.
[SPEAKER_01]: Dann würde ich mir die Definition dieser Metriegen mal versuchen, herzuleiten.
[SPEAKER_01]: Weil du hast gerade schon von Plays und so weiter gesprochen und von Downloads audio kann man ja aber auch streamen, weil du hast nämlich vorhin auch durch höhere Raten erwähnt.
[SPEAKER_01]: Meine Annahme ist und das würde ich dann werifizieren ist, dass das Ziel verhalten von ab wann ein Play, ein Play ist zwischen Spotify und Apple und den anderen drei Plattform anders ist.
[SPEAKER_01]: Keine Ahnung, der eine macht da 3 Sekunden an und ab 25 oder so was also, ich würde schon versuchen, einen einheitlichen Nänner zu bekommen, so weit wie möglich mit einer gewissen Unschärfe und die gewisse Unschärfe ist, wenn Spotify sagt, ich nütze ein Play als Play nach 10 Sekunden und Apple nach 20, dann würde ich das im Zuge des Produktes vielleicht als ein Playzeel, dann würde ich darauf gar nicht achten.
[SPEAKER_00]: Aber wie würdest du jetzt jetzt von der Architektur hermachen würdest du dann die Werte so abspeichern, wie sie über die API an dich geliefert werden?
[SPEAKER_00]: Oder würdest du dir in dem Format speichern, wie du dann die Auswärtung machst?
[SPEAKER_00]: Also wenn du jetzt sagst, es gibt denn die Place und da fließen dann die Apple Place rein, die Spotify Place und die Downloads von dem Hoster.
[SPEAKER_00]: Du Speichestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestestest [SPEAKER_01]: Ich weiß jetzt, ich habe da daunlos, ich habe daunlos, ich habe daunlos und so weiter und sofort.
[SPEAKER_01]: Ich habe jetzt zwei Möglichkeiten im Kopf.
[SPEAKER_01]: Die erste Möglichkeit ist, ich habe einen Skettula und das Skettula hat verschiedene Adapter.
[SPEAKER_01]: Und der Adapter heißt das Spotify Adapter und Apple Adapter und so weiter und so fort.
[SPEAKER_01]: Und der Spotify Adapter und der Apple Adapter, die kümmern sich um alles, was da drunter hängt im Bezug auf.
[SPEAKER_01]: Ich fäde die Request aus, ich mache den Gitter, mach den Gitter, mach den Login und so weiter.
[SPEAKER_01]: Das Loginproblem kümmern wir uns leicht.
[SPEAKER_01]: Und jeder, jeder adaptar gibt mir in definiertes Format zurück.
[SPEAKER_01]: Und jetzt jetzt kommt es gerade, deswegen sag ich, zwei Möglichkeiten.
[SPEAKER_01]: Entweder, ich hab das definierte Format als zwei Lehrmodell, das bedeutet auf dem ersten Lehrer sind, ist der kleinste gemeinsame Männer.
[SPEAKER_01]: Dass jeder Service mir sagt, okay, das sind die Downloads und zu weiter.
[SPEAKER_01]: Und der zweite Lehrer werden die Raw Response, also ich würde mir die Raw Response immer wegspeichern.
[SPEAKER_00]: Ich bin mir gerade unsicher, in welcher Form wird es so die Speichern?
[SPEAKER_00]: Also wirklich die des Chasen als Block irgendwo in der Dite, wirklich des Datum API und zuzufügen stellt definiert oder in der Datenbank.
[SPEAKER_00]: Also was würdest du da machen?
[SPEAKER_00]: Reine Zformat, würdest du jetzt wirklich bra, bra, Speichern oder in irgendeiner so einer Zwischenrufe?
[SPEAKER_01]: Da das ja nicht die Dokumentierte API sind, die sich jedes Mal ändern können, würde ich glaube, ich im ersten Schritt...
Ah, das ist schwierig, das ist schwierig, weil auf der einen Seite, wenn ich das wirklich raw wegspei.
[SPEAKER_01]: Also ich würde das schon noch mit ihnen die Datenbank speichern.
[SPEAKER_01]: Aber auch da raw chasen oder in spalten, die du definiert hast.
[SPEAKER_01]: Also in der da würde ich im Blobfeld machen raw chasenfeld.
[SPEAKER_01]: Okay, also wirklich, die echte Response, die man zurückbekommen.
[SPEAKER_01]: Es stelle ich mir aber gerade die Frage, ob ich im ersten Schritt einen ein zu ein zu Key-Map-Hing mache.
[SPEAKER_01]: Das bedeutet, ich bekomme jetzt Downloads an das Go-Day zurück und Map-Had das auf Downloads an das Go-Day in den.
[SPEAKER_01]: Also ob ich die Raw API, die Raw Response immer noch, ob ich die wirklich einfach nur Copy-Rubber oder ob ich die einzelnen Keys-Manuell-Rubberschreibert weil, wenn die Response sich nämlich über Zeit ändert.
[SPEAKER_01]: Dann kopiere ich ja immer die RAW-Response und wenn ich irgendwann mal über alle RON-DAR-Neterieren möchte, da muss ich ja ätliche Check-Spawn existiert, dieser Key in dieser Response und Zweitere, weil die Response kann sich ja ändern mit den Keys.
[SPEAKER_01]: Und wenn ich das 1 zu 1 SmartPink mache, dann kann ich immer sicherstellen, ah, dieser Key, wenn der Lair ist, dann wird der rausgenommen.
[SPEAKER_01]: Dann habe ich aber immer das Problem, ich brauche, und so eine Art-Observability, wenn ein neuer Key in Zugefügt wird, damit ich das Mepink nachziehen kann.
[SPEAKER_00]: Ja, so, du musst Ihnen irgendwo einen Mapping machen.
[SPEAKER_00]: Du kannst es einen Röcht zur Laufzeit machen, wenn du die Daten bekommst.
[SPEAKER_00]: Du kannst es später machen.
[SPEAKER_00]: Im Prinzip brauchst du irgendwo einen Mapping.
[SPEAKER_00]: Wie würdest du es anlegen?
[SPEAKER_00]: Klar, gibt verschiedene Möglichkeiten.
[SPEAKER_00]: Und es wird im Detailfall natürlich dann auch je nach dem zu bewerten.
[SPEAKER_00]: Aber jetzt die Infos, was du hast, wo du bist, du bist ein Mapping-Layer anlegen.
[SPEAKER_00]: Und zu welcher Zeit würdest du in den Mapping leer starten?
[SPEAKER_00]: Und das Mapping dann wirklich durchführen?
[SPEAKER_00]: Beim Fetchen, beim Aprofen, irgendwie in der Mitte.
[SPEAKER_01]: Ich glaube, ich habe mich jetzt entschieden.
[SPEAKER_01]: Ich würde der Adapter retuniert immer die Euro-Response.
[SPEAKER_01]: Und das wird in einem Message-Q gehen.
[SPEAKER_01]: Mit der Information da kommt eine Message vom Adapter das Spotify.
[SPEAKER_01]: Und dann gibt's ein Spotify-Konsumer, der dann die Harte Arbeit macht.
[SPEAKER_01]: Und die Harte Arbeit ist aus der RAW-Response.
[SPEAKER_01]: Den kleinsten gemeinsam nennerechnen, also das bedeutet, also die Kies rausnehmen und der macht dann auch das heavy lifting in Bezug auf.
[SPEAKER_01]: Oh, ist da neuer Kie, ist dann alter Kie und so weiter.
[SPEAKER_01]: Der Grund ist warum, wenn sich die Response, nämlich komplett ändert, dann kann ich da nämlich in der Message-Verarbeitung einen Fehler zurückgeben und dann geht meine Message in der LetterQ, die ich dann beim D-Bug gegen verarbeiten kann und wenn ich die, wenn ich die Code angepasst habe, kann ich die Message in der LetterQ wieder riegt, jungen und somit verlier ich keine Daten.
[SPEAKER_01]: Somit habe ich beide Vorteile, ich habe eine Art Allerting System, wenn sich an der Response was ändert, wo ich Code adjusten muss, also wirklich anpassen muss oder ich kann bzw.
[SPEAKER_01]: aktiv und verlieren aber auch keine Daten.
[SPEAKER_00]: Jetzt hast du schon Q erwähnt, wenn wir da mal ein bisschen in die Architektur reingehen, du würdest dem nach alles mit Qs bauen, ich erheine deine Lieblingsarchitektur fast, kann so mal alle Leute dann wieder das Architekturmäßig aufsetzen würdest, was wohl liegt.
[SPEAKER_00]: Welcher Mutul-Service ist, was auch immer wieder das einfach bauen wird, ist von der Architektur, was du jetzt bisher erklärt hast.
[SPEAKER_00]: Vielleicht ist auch noch als Zusatzinformation, wir wollen natürlich schnell zu einem MVP kommen.
[SPEAKER_00]: Also wir sind jetzt keine Enterprise, die 200 Leute zu Verfügung hat, sondern wir sind ein zwei Personen, die möglich schnell, irgendwas einen Start bringen wollen natürlich auch also, nur um das um den Kontext zu geben.
[SPEAKER_01]: Okay, wir haben eben irgendwo in der Datenbank haben wir die den Podcast, mit der Podcast ID, mit den Credentials und so weiter und so fort.
[SPEAKER_01]: Von welchen Credentials red ist du?
[SPEAKER_01]: Nein, wir müssen ja automatifizieren, hast du gesagt.
[SPEAKER_01]: Die Apple Credentials zum Beispiel.
[SPEAKER_01]: Wir die Credentials, die ich...
[SPEAKER_00]: Die zu den Podcasts re seien sind von einer Quelle.
[SPEAKER_00]: Du hast ja bei Spotify andere Credentials als bei Apple.
[SPEAKER_01]: Ganz direkt haben wir eine Tabelle, eine relationale Tabelle und die heißt Podcasts.
[SPEAKER_01]: Und die hat eine ID, die hat Namen und die hat dann einfällt, Spotify username und Spotify Password, Apple username, Apple Password und so weiter.
[SPEAKER_01]: Ja, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, ne, [SPEAKER_01]: Ja, ja, ja, es legt in der Datenbank ist okay.
[SPEAKER_01]: Also, dann habe ich in dieser Datenbank steht noch irgendwie die Crawling-Time drin und die Last Crawling-Time.
[SPEAKER_01]: Oder so?
[SPEAKER_01]: Ja, die Crawling-Time ist dann die Crawling-Time.
[SPEAKER_01]: Wenn der optimal starten soll.
[SPEAKER_01]: Ah, da, die Zeit, nicht genau, genau, wirklich, allgemeiner Zeit.
[SPEAKER_01]: Genau, keine Ahnung, 13 Uhr.
[SPEAKER_01]: Wir gehen jetzt vom täglichen Crawling aus, 13.
[SPEAKER_01]: Dann haben wir einen Crawling, der guckt alle 5 Minuten in die Tabelle, so nach dem Motor, hey, muss ich jetzt gerade wieder was Crawling.
[SPEAKER_01]: Der hat der holt sich die, gibt mir alle Podcasts, die in den letzten 5 Minuten die Crawling kann man recht haben.
[SPEAKER_01]: Dann würde ich diese Row nehmen, diese Datenbar-Grow und in eine Message-Güperung.
[SPEAKER_00]: Dahinter, dass wir einen System, würdest du verwenden für die Messagecuse?
[SPEAKER_01]: Das gab es, wie gesprungen, da kannst du wieder...
Also ich bin großer Fan von RabbitMQ, du kannst aber auch immer so einen SQS nehmen und dann über...
Flammarmel by RabbitMQ, du hast RabbitMQ als Messaging System.
[SPEAKER_00]: In was Programmierst du da diesen CrunchUp?
[SPEAKER_00]: Okay, sprach unabhängig, aber ich wird in Go-Machen.
[SPEAKER_00]: Und der Crunch wurde System Crunch.
[SPEAKER_00]: Also Linux Crunch wurde dein Co-Program einfach aufrufen, alle fünf Minuten.
[SPEAKER_01]: Schmeißen der Message, in die die Alternativ, Alternativ haben wir ein Prozess mit dem Timer, der alle fünf Lohn nachguckt, weil dann umgehen, wann nämlich das Problem, dass der, wenn der Kronen irgendwo im Hängen bleibt, dass er sich nach und nach immer selbst startet.
[SPEAKER_01]: Aber okay, across.
[SPEAKER_00]: Wird eine Message in die Q, dann nämmer mal an, da hat es Spotify in die Q gewofen.
[SPEAKER_00]: Oder wird der Apple uns Spotify rein in einer Message, wahrscheinlich nur das Spotify, oder?
[SPEAKER_01]: Das ist es sehr gute Frage.
[SPEAKER_01]: Wir können die ganze Roller reinschmeißen und der Consumer, es kommt auch an wie wir den Consumer bauen, bauen wir einen speziellen Consumer der nur Apple Request macht und einen Consumer der nur Spotify Request macht.
[SPEAKER_01]: Ja, wir würdest das machen.
[SPEAKER_01]: Ich würde sagen, ich wir bauen einen Consumer der Apple macht und einen Consumer der Spotify macht, weil die Codebase für einen Consumer der einen Twitch K-State mit dran hat und so weiter wird schon relativ groß.
[SPEAKER_00]: Okay, also du hat es dann consumer, die sind wieder in Go geschrieben, vermutlich mal bei dir, die lesen dann die Message ein, sind es unterschiedliche Programme, ist es das selber kaut, also also dass du das 2 Services oder ist das ein Service was Spotify und Apple versteht und die nachdem mit einem if dann internes sprittet.
[SPEAKER_01]: Ich denke, dass in der Regel Funktionalität teilen und mit Funktionalität teilen, meine ich nicht die Service-spezifischen Kohl, sondern eher, ich muss eine Message lesen, ich muss die Message-Agnologien, ich muss den Hattet Pickle machen, ich muss einen Retry machen, ich muss observiert, die habe ich uns mithrecken rausgeben und also was ist, dass eine Codebase mit unterschiedlichen, ja, ich nenne es mal Klassen oder Structs oder oder insgesamt.
[SPEAKER_01]: Weil es ist ja immer dasselbe Pettern, wenn man die Art und Weise, wie wir die Daten holen, ist anders, aber das ganze drumherum ist ja dasselbe.
[SPEAKER_00]: Wie sieht das mit dem Code aus der Background angestossen wird und dann die Message in die Kioschmeist, aus der Datenbank, ist das dieselbe Codebase?
[SPEAKER_01]: Ja, das kann entweder, wir können das in einem Monorepo packen oder in unterschiedlichen Repos inzwischen würde ich sagen, ich pack's in einen Monorepo mit einem zweiten Kommand.
[SPEAKER_01]: Aber es ist dieselbe Codebase.
[SPEAKER_01]: Also es ist nur ein flack wie du startest.
[SPEAKER_01]: Nee, du kannst je nach architectur kannst du different verschiedene Bineries haben.
[SPEAKER_00]: Du kompfeierst du eine Bineries raus.
[SPEAKER_00]: Du würdest zwei Bineries haben.
[SPEAKER_00]: Also zwei, zwei, zwei.
[SPEAKER_01]: Aber es ist in dem Fall.
[SPEAKER_01]: Es ist dieselbe Codebase.
[SPEAKER_00]: Ja, aber zwei Services steht die Laufen.
[SPEAKER_00]: Die Konsummer können überhaupt mehrfach laufen, oder?
[SPEAKER_01]: Die Konsumer können, du kannst 100 Spotify-Konsumer starten.
[SPEAKER_01]: Du kannst die sogar, weil ich gestack davon aus Spotify rugen, Radlymentekne hat und bei Piedresen blockten Albedromendran, werde ich mit hoher Wahrscheinlichkeit, wenn wir nur serviskalieren, die ganze Sache auch auf verschiedene E-Gress-Appiedresen verteilen müssen.
[SPEAKER_01]: Und somit kannst du die ätliche Male starten und die Q-Kumer sich ja um die Mest-Schlebriegenau.
[SPEAKER_00]: Okay, und dieser ist auf der Schreibtern die Daten auch wieder in die Datenbankreinen.
[SPEAKER_00]: Oder geht es dann wieder über Messages?
[SPEAKER_00]: Jetzt mal angenommen, ich krieg die Daten von dem Service, die würd ich wieder in dem Messerspank.
[SPEAKER_00]: Genau, dann kommt auf der anderen Seite wieder ein Tool, was das Konsument und dann wie du schon beschrieben hast in die Datenbank des Mapping und die Heavy lifting wie du's genannt hast macht.
[SPEAKER_00]: Genau, das darf ich selber entsprechend auch dieselbe Codebase vermutlich.
[SPEAKER_01]: Wir achten da würden wir ein consumerinterface schreiben und das consumerinterface, ich meine, das macht jetzt ein bisschen was anderes, aber die Message Q-Connection Reconnection ist ja das gleiche und da würde ich jetzt erstmal wegspeichern, erstmal raw wegspeichern und vielleicht sogar würde ich die Nachricht von einem zweiten consumer dann auch nochmal lesen lassen, um so einer RTL-Prozess anzustoßen.
[SPEAKER_01]: Also die Datenbank, das wegschweichend ist, das wegschweichend ist raus, der Raw Response dient für spätere Requeueing, falls sich noch mal was Neuprozess möchte.
[SPEAKER_00]: Wie machst du denn Re-Trace, wenn noch keinen Nettaten zu Wünschen?
[SPEAKER_00]: Re-Trace, wofront?
[SPEAKER_00]: Wenn noch keine Daten zu Wünschen, also Spotify noch nicht gekranzt, du schaust er vorbei, um 13 Uhr, noch keine Daten da.
[SPEAKER_01]: Ob Spotify die neuen Daten gecrunchen, hab ich da so ein Crunch-State oder so was?
[SPEAKER_00]: Also hab ich einen einen Antrieb gut, was mir sagt, das nicht wirklich, aber du kannst durch checken, ob die Daten vom Vordag da sind.
[SPEAKER_00]: Also wenn heute jetzt der 11.Escan zu schauen, sind die Daten vom 10.
[SPEAKER_00]: Da oder nicht.
[SPEAKER_01]: Also dann würde ich...
[SPEAKER_01]: Das können wir auf unterschiedliche Art und Weise machen.
[SPEAKER_01]: Da ich ja gesagt habe, wir haben einen Crawl-Date in der Tabelle initial.
[SPEAKER_01]: Würde ich vielleicht noch einen Last Crawl-Date machen oder einen Retry Fleck und so weiter.
[SPEAKER_00]: Aber wer kümmert sich um die Retries?
[SPEAKER_00]: Also auf welcher Seite?
[SPEAKER_00]: Weil da der Consumer sagt, der zu KDaten sind und nicht da.
[SPEAKER_00]: Was passiert dann in der Moment?
[SPEAKER_01]: Genau, dann wird ich eine, da kann man jetzt, also, der schnelle Heck wäre, der consumer abdätet die Datenbankro im Grundjob, die Datenbankro in den Initial, dann müsste der consumer aber Informationen über das Datenbankschämer haben.
[SPEAKER_01]: Aber der würde die Zeit um eine Stunde erhöhen, das noch mal in eine Stunde probiert wird oder genau.
[SPEAKER_01]: also in einem Interweil, weil dann kommt der alle fünf Minuten der Grundjob und schaut nach und riekeüte die ganze Sache wieder.
[SPEAKER_01]: Ich würde noch irgendwo ein Retry-Counter-Einbauen vielleicht für den Tag, aber wenn man weiß, okay, wie ist mein Retry-Pattern oder um wird das erstmal vielleicht einfach wegloggen, das reicht der erstmal, okay.
[SPEAKER_01]: Aber so hast du, so hast du, so hast du, die Frage ist, was wir bei 23 Retryes machen.
[SPEAKER_00]: Ja, irgendwann musst du manuell so wie so eingreifen oder dir überlegen, was du machst.
[SPEAKER_00]: Das ist den Punkt, was du sowieso immer reichen, weil was ist, wenn es Spotify 3 Tage mal nichts liefert.
[SPEAKER_00]: Ist schon genau das.
[SPEAKER_01]: Ja, fällt die eigentlich die Tour, die ich jetzt gerade beschrieben habe, auf die Mütze, weil wir natürlich davon ausgehen, dass innerhalb von 24 Stunden die Daten kommen.
[SPEAKER_01]: Aber das ist manuell intervention, das ist okay, das hast du immer.
[SPEAKER_01]: Also egal, was wir eigentlich die Tour du fernst.
[SPEAKER_01]: Du kannst ja auch ein Crawlock generieren.
[SPEAKER_01]: Also du kannst ja in der Tabelle auch sagen, okay, pass mal auf.
[SPEAKER_01]: Jetzt mache ich den Rikers für diesen Tag, für diesen Tag, und dann geht der Grundjob auf dieses Crawlock, das geht ja auch.
[SPEAKER_01]: Aber lassen wir das jetzt mal weg zur Komplexität dieses Podcast hier.
[SPEAKER_01]: Welche Datenback verwendest du?
[SPEAKER_01]: Gerade mit der das auch noch abgehakt haben?
[SPEAKER_01]: Na ja, aktuell hat das Ding eine Tabelle, oder vielleicht zwei, mit drei, mit normalform.
[SPEAKER_01]: Da würde ich jetzt ganz normal, also da würde ich jetzt vielleicht erst mal ne Post-Grain nehmen, denke ich.
[SPEAKER_00]: E-Initial.
[SPEAKER_00]: Warum, was würdest du sonst noch auf lange Sicht nehmen?
[SPEAKER_00]: Es gibt, wie wir es kallieren, das ja auf 10.000 Bordkast.
[SPEAKER_01]: Er mit 10.000 Bordkast würde ich immer noch eine Post-Grennehmung.
[SPEAKER_01]: Ab 150 oder ähnliches müssen wir gucken, wie viel Daten und einen Rinkomp vielleicht würde ich dann irgendwann eine Verteilteklick aufsnehmen.
[SPEAKER_01]: Und da müssen wir schauen, wie viel Response kommt, wie viel Festplottenplatz die Datenbank dann braucht.
[SPEAKER_01]: Denn da kommen wir dann, wir wahrscheinlich an die Kapazitäten einer einzelnen Maschine.
[SPEAKER_01]: Natürlich kann man PostgreSQL oder Postgreep.
[SPEAKER_01]: Es kriegt wieder auf die Mütze von der Community, wie ich das da mal ausspreche.
[SPEAKER_01]: Den Fehler nehme ich auch, wie ich weiß, dass ich da ein Fehler habe.
[SPEAKER_01]: Aber da natürlich kann man das dann auch schaden.
[SPEAKER_01]: Und so weiter, aber da wäre ich dann vielleicht irgendwann vielleicht auch nur verteilte Datenbank wie Klick ausgehen.
[SPEAKER_01]: ganz weit runter.
[SPEAKER_01]: Wenn wir dieses Problem haben, haben wir auch in der Ringelpaar-Engine, es ist umgumack.
[SPEAKER_01]: Aber Postkrieg oder meistgrögel ich denke, die bringen uns sehr weit.
[SPEAKER_01]: Ich denke, ihr Postkrieg, weil die haben die besseren Jason Funktionen.
[SPEAKER_01]: Ich nehme an, dass ich die Robles-Bonds seine Jason Speicher.
[SPEAKER_00]: dann geben wir mal auf dem anderen Empereich und zwar Security.
[SPEAKER_00]: Du hast ja in dem ganzen System sehr viel mit Credentials zu tun.
[SPEAKER_00]: Das heißt du hast die Credentials von seinem von deinen User die auf die Daten zugreifen.
[SPEAKER_00]: Dann hast du Credentials von den ganzen Sources, das heißt Spotify, Apple und so weiter im Worstk ist hast du Respaswort von deinen Kunden, [SPEAKER_00]: Für ihren Applicant, für uns Spotify-Count, wie gesagt, in der Realität geht es anders, aber nehmen wir das mal anders, heißt du hast sehr viel mit Tokos und Credentials zu tun.
[SPEAKER_00]: Wie speichest du dir?
[SPEAKER_00]: Da sind mal eine schwierige tematik.
[SPEAKER_00]: Ja, ich weiß, darum frage ich sie ja, hab mich schon schlafen, wo sie nächte bereitet.
[SPEAKER_01]: Also das ist ja jetzt unabhängig davon, ob diese Services irgendwie passwürter entgegen, nehmen oder Tokens oder ähnlich.
[SPEAKER_01]: Wir haben selten sie, die wir da, die sich nicht reinternt.
[SPEAKER_01]: Ich kriege keine Zeitbasierten Daten, die hier mal nix Bayern richtig.
[SPEAKER_01]: Also das Blössensitzabel, eine, ich habe eine Zugangsdaten, die dauerhaft gültig sind, darum geht es gerade, oder?
[SPEAKER_01]: Weil, wenn ich eine mich, wenn ich sage, oh, gibt mir, gibt mir einen Token, der nur 30 Minuten zur Verfügung ist oder nur gültig ist, dann ist das vielleicht ein bisschen was anderes als wenn ich dauerhaftet wird, denn schön es habe.
[SPEAKER_00]: Ich weiß jetzt gerade sagen, machen wir es einfacher, aber nehmen wir mal die Realität du hast bei das.
[SPEAKER_00]: Du hast credentials, die so ein Jahr kürtig sind, also nie auf ewig, sondern immer nur maximalen Jahr, aber du hast welche, die sind auch nur zwei Stunden kürtig und du musst mit einem Refresh-Token wieder neue Tokens anfordern.
[SPEAKER_01]: Ja, vielleicht würde ich einfach einfach, ne?
[SPEAKER_01]: Also das geht jetzt schon in Enterprise-Irein, aber da wäre ja sehr waschanlicher Morgen, welche Zettifizierung haben wollen und so weiter und so fort.
[SPEAKER_01]: Aber wir sind ja eine beste Podcast-Metrik-Kollektor der Welt.
[SPEAKER_01]: Würde ich jetzt einfach schon draufschmeißen, ich würde dir wahrscheinlich, wenn wir auf einem Halepas-Geller sind, irgendwie ein Passport-Korinisches so von denen nehmen, die haben nämlich sowas und dann würde ich den Passport-Kie, also eigentlich ist [SPEAKER_01]: wo das WLG oder das Passwort ist und der Key oder dem ich das Re-Kriste und dann wie Autentifiziert man sich gegen über den Passwort Storage.
[SPEAKER_01]: Wenn man das und Prämis macht, würde ich da irgendwie einen Volt nehmen, das bedeutet ich für die Credentials nicht in der Datenbank halt, also die Passwirt, dann nicht in den Datenbank halt in sondern in den Passwort Storage mit Volt oder [SPEAKER_01]: gibt es auch Google Cloud Secret Manager, glaube ich, oder von mir aus auch fast lokales mit so was die Go Pass, wo du dich mit einem GBGBGBi oder Reviziers, also wo der Consumer sich dann mit einem GBGBGBi hier oder reviziert und dann kannst du den Passwort Storage verschiedene User geben und jeder Consumer hat einen eigenen User und Auto-Vizierung mitholtet.
[SPEAKER_01]: Denn irgendwo musst du ja dich oder revizieren, um an die Gründe zu kommen.
[SPEAKER_01]: Okay, wo es spreichest du denn Ki, um dich zu adentifizieren?
[SPEAKER_01]: Den würde ich mit hoher Wahrscheinlichkeit dann auf der Maschine deployen.
[SPEAKER_01]: Keine Ahnung, es ist hackie sein, keine GbKK sein.
[SPEAKER_01]: Also irgendwo musst du ja einen Secret haben.
[SPEAKER_01]: Genau, ja, genau, denn würde ich jetzt auf die Maschine packen, oder wo weiß ich jetzt nicht, wenn das eine Github Action ist, oder mein Skoda-Lamda, oder ähnliches würde ich da das in den Sequels zur von...
[SPEAKER_00]: Okay, und wo machst du die Entschlitzelung zu sagen?
[SPEAKER_00]: Machst du die, wenn du die Message in die Q schmeißt?
[SPEAKER_00]: Machst du das auf der Consumer Seite, wenn du die Message Consumestay must Spotify Crown?
[SPEAKER_00]: Also, kennen deinen Kozium mal diese, also haben deine Consumer, den Key, um sich zu adentifizieren bei deinem Passwort Manager.
[SPEAKER_00]: Jeder Consumer hat nach eigenen User-Account der Passwort Manager.
[SPEAKER_00]: Also wir sind möglichst spät, die die Krippchen machen.
[SPEAKER_01]: Ja, sehr kurz so eigentlich nur.
[SPEAKER_01]: Das bedeutet, der Konsumenten, die nachrichten gegen, sagt, ah, ich muss Spotify für diesen Account, dann holte sich den und der hat dann auch nur Zugriff auf die Kiepräffixis und dann macht die Jahrdebeziehung und dann glaubte sich da wieder aus.
[SPEAKER_01]: Wenn du die Keys refreshen musst, würdest du auch über den Wort einfach schreibt, er hat den Wort.
[SPEAKER_01]: Genau, da wird er nur dann der Wort gehabtet.
[SPEAKER_01]: Also der Value in dem Wort.
[SPEAKER_01]: Dafür brauchst er natürlich auch Tooling.
[SPEAKER_01]: Ja?
[SPEAKER_01]: Das ist refreshwert, aber da der Consumer ja möglich ist, ich sag mal, shortlift auf den Passfussort zugreift.
[SPEAKER_01]: Sollte das natürlich ganz in einen race-condition haben.
[SPEAKER_00]: Aber die Kradansches für deine User würde es du dann auch gleich mit in dem Board abspeichern?
[SPEAKER_01]: Ich würde zu sehen, dass ich nur ein Passwort handling habe.
[SPEAKER_01]: Okay, überall.
[SPEAKER_01]: Weil sonst das wäre das so spezielle Fälle.
[SPEAKER_01]: Ja, das ist da und das ist da und das will sie ja möglichst vermeiden.
[SPEAKER_01]: Nicht weil das Technische die möglich ist, sondern um die mentale Hürde für das Software Engineering möglichst gering zu halten.
[SPEAKER_00]: Mhm.
[SPEAKER_01]: Ich bin aber auch schon ehrlich, das geht halt schon sehr enterprisiv.
[SPEAKER_01]: Wenn wir sagen, wir müssen ganz schnell was für die Straße bringen.
[SPEAKER_01]: Dann wäre ich glaube ich ganz dreckig in irgendeiner Datenbank.
[SPEAKER_01]: Aber weil so ein Wald aufsetzen, das ordentlich hinzukriegen.
[SPEAKER_01]: Das ist bei weit schnell auf die Straßebring.
[SPEAKER_01]: Aber würdest du es dann verschlüsseln in der Datenbank?
[SPEAKER_01]: Ich glaube, das sollte man schon tun.
[SPEAKER_01]: Okay, aber dann ist die Frage, wo stellt man den Schüssel wieder hin?
[SPEAKER_01]: Ja, dann kannst du das auch.
[SPEAKER_01]: Hast du ja immer da?
[SPEAKER_01]: Ja, genau.
[SPEAKER_01]: Also irgendwo muss das Ding halt da sein.
[SPEAKER_01]: Die Frage ist halt nur, wie auf Rotierstühnernden Schüssel.
[SPEAKER_01]: Mhm.
[SPEAKER_01]: Aber mit dem Wald und mit dem Passwort so weit hast du natürlich ein schönes Audit-Log.
[SPEAKER_01]: Wer hat wann, wie lange auf Zugegriffen und so weiter?
[SPEAKER_01]: Weißt du immer wirklich nicht.
[SPEAKER_01]: Klar, Rotieren musst du aber trotzdem.
[SPEAKER_00]: Also die, die, die, die, die, die, die, die, die, die, die, die, die, die, die, die, die, die, die, die, die, die, die, die, die, die, die, die, die, die, die, die, die, die, die, die, die, die, die, die, die, [SPEAKER_00]: Okay, gut, nach anderes Security-Damer.
[SPEAKER_00]: Back-Cups.
[SPEAKER_00]: Was ist denn die Frage?
[SPEAKER_00]: Ja, wie machst du Back-Cups?
[SPEAKER_00]: Solltest du ja machen, oder?
[SPEAKER_00]: Stattzimmer.
[SPEAKER_01]: Ja, klar, klar, klar, klar, klar, klar, klar, klar, klar, klar, klar, klar, klar, klar, klar, klar, klar, klar, klar, klar, klar, klar, klar, klar, klar, klar, klar, klar, klar, klar, klar, klar, klar, klar, klar, klar, klar, klar, klar, klar, klar, klar, okay, okay, okay, okay, okay, okay, okay, okay, okay, okay, okay, okay, okay, okay, okay, okay, okay, okay, okay, okay, okay, okay, okay, okay, okay, okay, okay, okay, okay, okay, okay, okay, okay, okay, okay, okay, okay, okay, okay, okay, okay, okay [SPEAKER_01]: Dann wird ich, glaube einmal im Monat, einen Drill machen, wo ich am Backup Risto auf der andere Maschine.
[SPEAKER_01]: Also das ist ja, ich würde mal sagen, standart, also da wüsse ich jetzt nicht, was daran speziell sein soll.
[SPEAKER_00]: Ja, ja, aber welche, welche Stooling?
[SPEAKER_00]: Rastik hast du erwähnt?
[SPEAKER_01]: Ja, gut, also da gibt es ja PG-Damp und Meiskeldamp und so weiter und sofort und mit Rastik.
[SPEAKER_01]: Ja, wenn die machen keine Incremental Backups.
[SPEAKER_01]: Ne, Rastik kümmert sich um Fals.
[SPEAKER_01]: Das bedeutet, die Incrementalen Backups.
[SPEAKER_01]: Da kümmert ich mich drum, dass ich Falser legen und dann Trigger, ich Rastik.
[SPEAKER_01]: Oder, von mir ist auch wiem oder irgendein Backup solution dies halt da gibt.
[SPEAKER_00]: Ja, ja, aber meist kalt Damp macht ihr zum Beispiel keine Incremental Backups.
[SPEAKER_00]: Ich bin ja auch Foskrieg.
[SPEAKER_00]: Und BG-Damp macht ihr Incremental Backups.
[SPEAKER_01]: Sehr gut und Frage?
[SPEAKER_01]: Wohin?
[SPEAKER_01]: Ich habe gedacht, ich komme darum.
[SPEAKER_01]: BG-Damp Incremental Backup, Best-Messels, Verbabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab [SPEAKER_01]: Sag mal deine Zeitprojects.
[SPEAKER_01]: Wie läuft das?
[SPEAKER_01]: Back von den Datenbank.
[SPEAKER_01]: Wir haben das mal auf.
[SPEAKER_01]: Wir haben immer Vollbegabs.
[SPEAKER_01]: Wenn Sie noch so klein sind, geht das ja.
[SPEAKER_01]: Also da mache ich mal Vollbegabs.
[SPEAKER_01]: Aber generell kann es natürlich ziemlich viel über das Lok.
[SPEAKER_01]: Aber ...
Und der Gestalt mit hoher Wahrscheinlichkeit inkremente, also auch für meist Guell gibt es ja inkremente Begabs Solutions.
[SPEAKER_01]: Also ...
[SPEAKER_01]: Einmal auf den Exzellen-Sorage, weit weg, auf den anderen Klau-Powader-Hetzner oder so.
[SPEAKER_01]: Dann einmal Lokal irgendwo auf eine andere Maschine.
[SPEAKER_01]: Oder vielleicht sogar auf der selben auch.
[SPEAKER_01]: Sehr geil, weil ich hab bei ein Offshore ein Onshore.
[SPEAKER_01]: Gibt's Onshore das Wort?
[SPEAKER_01]: Es gibt uns schon, aber in dem Kontext bin ich mit sicher.
[SPEAKER_01]: 1 ganz nah bei mir und 1 irgendwo an das.
[SPEAKER_01]: Da würde ich ganz klassisch, also wenn das ist ein gelöstes Problem, Datenbankbegabs.
[SPEAKER_00]: Okay, gut.
[SPEAKER_00]: Dann hatten wir Datenbank-Backhubs jetzt eigentlich dein Spezialgebiet, aber probiert ich möglichst kurz zu halten.
[SPEAKER_00]: Das ganze Infrastruktur, dem Monitoring, CICD, was würdest du dafür ein Stack verwenden?
[SPEAKER_00]: Wenn du jetzt selbst, wie gesagt, nicht EnterPrisis, sondern mit zwei Personen, da was auf die Straße bringen.
[SPEAKER_01]: Github und Github Actions, als CICD und die Blomend komplett.
[SPEAKER_01]: Hast du mir die Infrastruktur selber oder machen wir Hyperskiller?
[SPEAKER_00]: Das ist dein Projekt, das ist deine Gelddache.
[SPEAKER_00]: Oder muss ich Geldbörse sagen, was du dir leisten kannst.
[SPEAKER_01]: Wenn die zwei Leute mit Kubernetes vertraut sind, würde ich sagen, wir gehen einfach auf irgendeine Manage Kubernetes irgendwo und kümmern uns sich darum, weil dann haben wir einfach das auf dem, wenn die es nicht sind, dann würde ich sagen wir holen uns einfach zwei, drei Maschinen irgendwo bei Hezner oder Digital Ausstner und machen alles über System D, weil das kannst du auch sehr gut übergett ab extra steuern, weil dann müssen die Leute kein Kubernetes lernen und das bringt uns sehr weit.
[SPEAKER_01]: Monitoring?
[SPEAKER_01]: Am Monitoring würde ich inzwischen auch ganz klassisch prometters aller Manager und für Locks reicht vielleicht auch jetzt gerade erst mal nen Fall auf einer Kiste, wo wir drauf teilen.
[SPEAKER_01]: Aber in einer Löhnenpendelle sollten wir schon haben, damit wir in diesem Page-Schrigen wenn die Worker aufleihen sind oder von der Fondschätte schätten Notification in den Zleg oder ähnliches Kanal.
[SPEAKER_00]: Okay, es kallieren wir da, bis da ist ein Boardcasts.
[SPEAKER_01]: Ja, ohne Probleme.
[SPEAKER_01]: Weil, kenne, perfekt.
[SPEAKER_00]: Was, was, was?
[SPEAKER_00]: Also in meinen Smeter gesamten Architekturen nicht nur mit einer Infrastruktur.
[SPEAKER_00]: Die du jetzt erklärt hast.
[SPEAKER_00]: Oder sie ist ja irgendwo Probleme bei da ist ein Boardcasts.
[SPEAKER_01]: Die Konsumer kannst du hoch runterschrauben, wie du möchtest, kannst du auf mehrere Maschinen verteilen.
[SPEAKER_01]: Das ist kein Problem.
[SPEAKER_01]: Festplanstorische Daten waren, wie viele Responsen da kommen, aber eigentlich kannst du keine Ahnung, da war mal fünf.
[SPEAKER_01]: Plattformen, Pro-Podcast, Pro-Tag, das sind 5 Rose, das sollte auch noch alles möglicherweise ganz gut gehen.
[SPEAKER_01]: Sprechen wir auch Bilder und so oder sehen auch nur die, okay, 10 und an Daten.
[SPEAKER_01]: Doch, da ich glaub, da kommen wir mit einer zu einer Maschinen schon sehr weit.
[SPEAKER_00]: Okay, klickt nach einer eigentlich ganz guten Arche der Ktu.
[SPEAKER_00]: Die Kius gefallen mir auch sehr gut.
[SPEAKER_00]: Von mir ist 3 Processing, das kann man sehr gut brauchen.
[SPEAKER_01]: Das ist wie es nur 1% brauchen.
[SPEAKER_01]: Weil in Reprozessing ist eigentlich nur ein kleines Tooling, was ein Zellekt macht und die Daten wieder reinschmerst.
[SPEAKER_01]: Oder den, also die Rohrdaten, wenn nur die Repprozess möchte, das kannst du alle reposessen, mit dem Dettlitter-Q, du kannst jedenfalls ein Fehler super analysieren.
[SPEAKER_01]: Und das Lustige ist dieses Tooling bringt das ja alles mit.
[SPEAKER_01]: Wenn du vernünftiger Message-Q nimmst, also, wenn du zum Beispiel so ein Redis-Q nimmst oder so was, dann musst du mit dich um die Dettlitter-Qs mal nur Elkümmern und so, ne?
[SPEAKER_01]: Aber noch ein richtiger Message-Qs haben halt Dettlitter-Qs drin.
[SPEAKER_01]: Ich glaube, SQS auf Amazon hat's inzwischen auch.
[SPEAKER_01]: SQS, die LQ.
[SPEAKER_01]: Yeah, using that letter QS, using Amazon SQS.
[SPEAKER_01]: So, was gibt es halt auch.
[SPEAKER_00]: Okay, nur zur Information, so als Kalerungsgrößten Hausnummer, du brauchst Pro-Bottcast, fast so ein Giegebeit an Datenbank-Sprecher.
[SPEAKER_00]: Relativ schnell.
[SPEAKER_00]: Okay, aber eine Not mit 200.
[SPEAKER_00]: Geht Platz.
[SPEAKER_00]: Welche Zeitraum?
[SPEAKER_00]: Ja, es kann nicht so ausschlaggebend, weil du ja teilweise auch historische Daten mitnehmen musst, egal wie lang das Ding läuft.
[SPEAKER_00]: Also, die du fetschen musst, hast du vergangenheit, weil den Podcast gibt es vielleicht schon länger.
[SPEAKER_00]: Also, nur so, als Krobe, Hausnummer.
[SPEAKER_00]: Da ist aber alles, was du zugehört, halt so was.
[SPEAKER_01]: Jetzt ist natürlich meine Frage, wenn du das jetzt hörst, wo hast du das Produkt ja gebaut?
[SPEAKER_00]: Wie habt ihr es gebaut?
[SPEAKER_00]: Anders, sogar sehr anders, weil ich sagen, in vielen Bereichen, in vielen Bereichen, am wir es ähnlich gebaut, also Security haben wir verschlüsselt, aber in der eigene Verschlüsselungslösung gebaut mit dem Key, macht das ganze Handling allgemein sehr schwierig, weil du ständig irgendwo falschlüsseln ein Entschlüsseln musst testigen und so weiter, ist einfach schwierig, wenn man mit Quotantisches umgehen muss.
[SPEAKER_00]: aber im Endeffekt hast du dieses ganze credential handelingen, was einfach ein bisschen lästig ist, muss man schon zu sagen.
[SPEAKER_00]: Datenbank und so genau so wie du es gesagt hast im großen und ganzen.
[SPEAKER_00]: Wir haben sehr stark auf ein Microsoft- oder Microsoft-Service, aber ein Services Konzept gesetzt.
[SPEAKER_00]: Das heißt, bei uns sind alles eigene Repositories, eigenes Systeme, eigenes Services, die Konziuma oder die des Crawling machen, zum Beispiel auch im eigenen Fisportifer, eigenen Fair Apple.
[SPEAKER_00]: Hat aber auch den Grund, dass wir sehr viel Open-Source haben und da wirklich eigene Becketschis haben, also kannst den Spotify-Connector oder den Apple-Connector bei uns verwenden Downloaden, sind Repositorystiefrei zu Verfügung stehen, sind Beißen, mittlerweile würden wir wahrscheinlich mehr andere Sprache verwenden einfach.
[SPEAKER_00]: Weil beifen nicht sehr gut geeignet ist, aber damals ging es darum schnell, was auf die Straße zu bringen und wir hatten gewisse Deile, die wir übernehmen konnten, darum haben wir auf beiden gesetzt und darum haben wir durch den OpenSource Gedanken vielleicht ist auch komplexer Gestalt der derzeit, wenn ich das [SPEAKER_00]: Frisch Neubauen würde die auch eher auf sowas setzen, wie du gesagt hast, einen Monolithen, wo alles drin ist, weil die Entwicklung einfach viel schneller läuft.
[SPEAKER_00]: Man kann auch jetzt, gerade wenn man so an die LLM-Zeiten denkt und kopallet, kopallet hat auch Schwierigkeiten, wenn das in acht verschiedene Repositores verteilt ist und den Systemen und Microsoft ist, ist und was fährst du hoch bei irgendwelchen Tests.
[SPEAKER_00]: Da bist du auch viel schneller, wenn du in einem Monorepo oder in einem Monolithen arbeitest.
[SPEAKER_00]: Also, da macht man schon ganz klaren Geschwindigkeit und Unterschied, wie man die Welt ob man betreiben kann.
[SPEAKER_00]: Wenn man 300 Leute sind, ist das was anderes wahrscheinlich, aber wenn man so einem kleinen Team ist, macht das Ganze aufs Blitten schon den großen Mehraufwand, den ihr jetzt eigentlich eher verhindern würde in einem neuen Projekt.
[SPEAKER_01]: Das Problem ist auch, wenn deine verschiedenen Services alle auf eine Datenbank gehen und auch Schreib- und Lesetzugere vermachen, dann die Anpassung des Datenbank Schämer und das gleichzeitige Deployment von diesen Daten-Service.
[SPEAKER_01]: Ich weiß nicht, wie ihr das jetzt handhabt.
[SPEAKER_00]: Wir haben das echt sauber getrennt, dass eben...
[SPEAKER_00]: Eine Haupt API eigentlich das ganze mit der Datenbank macht schreibeend und die Konziumer konneckten sich dann über eine API, du hast jetzt über eine message Q gelöst, wir haben es eine über eine API gelöst, dann kommt aber sowas später hinzu jetzt fangen die Konziumer irgendwelche Tokens zu refreshen, das heißt du musst doch irgendwie wieder schreibe Zugriff auf die Datenbank haben, also es fängt dann so verschwimmen an über die Zeit kommen andere Requirements dazu.
[SPEAKER_00]: Und dann müsstest du es entweder wieder kompliziert über APIs abbilden oder du bekommst dann eben doch Schreibzugriff.
[SPEAKER_00]: Dann hast du wieder vielleicht die Konzept, die du komplett überbaut, werfen muss, weil die einfach nicht mehr so funktionieren, dass ein User-Nummer-Lesezugriff hat in der Datenbank weil jetzt plötzlich auch schreiben muss und so weiter.
[SPEAKER_00]: Also, es historisch, wie halt so ein Projekt wechseln, wachsen auch die Requirements und dann hast du natürlich die Wissen Entscheidungen, die du in der Vergangenheit getroffen hast.
[SPEAKER_00]: Macht's vielleicht jetzt dann teilweise etwas schwieriger, aber ich muss auch sagen, ich würde wahrscheinlich sehr ähnlich wie der machen, grundsätzlich sehr einfach anfangen, anderen am Interessen und man muss die halt ändern.
[SPEAKER_00]: Also wir hatten am Anfang sogar eigene Doktor-Kundäne für einen Crawler, den wir einzelnen Hochfahren haben können für einen Boardcast über die entwarmentvariablen haben, wird es mitgegeben und am Anfang haben wir sogar so skalliert und haben einfach 20 Doktor-Kundäne laufen lassen und jeder Doktor-Kundäne war ein Crawler.
[SPEAKER_00]: Ein unabhängiger, das war einfach möglichst schnell, was auf die Straße bringen.
[SPEAKER_00]: Und dann kannst du anfangen, zu skalieren und das zusammenziehen und zu automatisieren.
[SPEAKER_00]: Und dieses Vorgend würde eigentlich weiterhin wirklich so auch wieder machen.
[SPEAKER_01]: Ja, bei meiner Lösung, da könntest du super viele Shortcuts nehmen, viel war schon Enter-Prisive und Skalierung und das.
[SPEAKER_01]: Aber wenn du das noch nie gemacht hast, dann ist meine Lösung sehr wahrscheinlich auch mit Kanon auf Spazen, gar keine Frage, wenn du in dem mit hier aber unterwegs bist, wenn du genau weiß wie messeschkühlen funktioniert, wie ex-Genius funktioniert, wie deadletter Kühlschrank funktioniert, wie du die Connection baust, dann bin ich fast schneller als mit dieser zentralen API, die du genannt hast.
[SPEAKER_01]: aber ich geb auch zu dieses System, du hast es ja schon Ihnen sehr gesagt, ist mein Lieblingssystem, ich muss zugeben, ich habe damit, also solche Systeme habe ich schon ein paar Mal gebaut und kennen mich deswegen da relativ gut auf und kriegt die relativ schnell auf die Straße, weil ich die Inselt auskennen, aber ich verstehe, dass wenn jemand sagt, hey, das ist aber [SPEAKER_01]: Du hast eine Nage und versuche ich mir im Schrauben sicher, da reinzuballern.
[SPEAKER_01]: Ich verstehe dann auch, wenn man sich das sagen, dass es die falsche Archie Tour.
[SPEAKER_01]: Ich denke, es gibt diese ich nänzmal Micro-Serviceartige Archie Tour, die duert genannt hast.
[SPEAKER_01]: Ich bin davon auch überzeugt, dass das auch klappt.
[SPEAKER_01]: Du brauchst aber ein Message-Spruchsrückung zwischen durch.
[SPEAKER_01]: Damit du die Datenbadgepennet sie es rauskrisst, weil sonst hast du.
[SPEAKER_01]: Damit du halt nicht immer alles Services gleichzeitig die Pläuen muss.
[SPEAKER_01]: Also brauchst du einen Art Backboards-Koppertibiltät.
[SPEAKER_01]: Dann hast du natürlich mit mehreren Repositories, auch immer das Problem.
[SPEAKER_01]: Wann habt ihr das?
[SPEAKER_01]: Ja, und du nimm mal die Pännensie ab.
[SPEAKER_01]: Da bist du in achere Positories unterwegs.
[SPEAKER_01]: Das ist Payin.
[SPEAKER_00]: Und wie gesagt, mittlerweile hast du so einen Copilot prompt.
[SPEAKER_00]: Und wenn du in der Monorepunt unterwegs bist, der geht dir halt durch alle deine Deile durch und bast dich selber die APIs an.
[SPEAKER_00]: Und dann hast du das erledigt.
[SPEAKER_00]: Kannst du nur machen, wenn du keine Exzellen abhängigkeiten hast, wenn du jetzt ein schönes, ob ein Sourceprojekt hast, [SPEAKER_00]: ist es natürlich schon wieder schwieriger, so hand zu haben.
[SPEAKER_00]: Aber grundsätzlich ist es in anderen Projekten, wo halt keinen Open Source, wo wie die einzigen Anwender sind, dann geht es natürlich wesentlich schneller, wenn man da einfach mit einem Mono liten durchknallt.
[SPEAKER_01]: Was von uns, von einer weiteren mehr oder weniger Achtectur-Diskussionen, auf die erste Achtectur-Diskussionsfolge, da wo wir einen Heiz-Ölpreis-Scraper gebaut haben, haben wir doch sehr viel Engagement in der Community gesehen, wo Leute und ihre Lösung gepächtest haben, fand ich super interessant.
[SPEAKER_01]: Ich habe sehr viel gelernt und teilweise kam über andere Social-Media-Kanell, wie machst du Dungen sagen, hey, das genau haben wir gebaut.
[SPEAKER_01]: Schau doch mal hier und haben uns auch für einen GitHub Repo verlinkt.
[SPEAKER_01]: Was ich auch super nett fand, ich habe super, wir grins und auch ein bisschen den Wolfgang und wir wissen, dass das ein reales Problem war und kein fiktibles Problem.
[SPEAKER_00]: Ich hoffe, es kommt jetzt jemand, um die ECL und sagt, ich habe das schon gebaut, diesen kompletten Podcast Analytics deck, weil das wird mir etwas depribieren.
[SPEAKER_00]: Aber wer Ideen hat oder Verbesserungsvorschläge, ich kann mir.
[SPEAKER_01]: Und wie der Wolfgang jetzt ist auch in Gebaut hat, der hat auch gesagt, ziemlich viel haben die Obenzorst, den die Githap-Depus verlinkt mir natürlich auch in den Schonoz, falls Sie hier damals die Lösung sehen wird.
[SPEAKER_01]: Und es wird aber ganz besonders interessieren, wie würdet ihr das bauen.
[SPEAKER_01]: Ja, Microsoft Rescu, wie würdet ihr die verschiedenen Datenschut-Turhänden, wo wir rüber mir noch gar nicht gesprochen haben, wer diese 2-Fektautente Witzierung bei Apple von Wolfgang gesprochen hat.
[SPEAKER_01]: Also diese zu automatisieren ist sehr spannend, das Problem.
[SPEAKER_01]: Das kriegen wir jetzt gerade leider nicht mehr hin.
[SPEAKER_01]: Kommt doch mal in die Community und so Diskot Community findet ihr in den Schönen und sagt uns doch einfach mal, wie ihr die ganze Sache lösen würde.
[SPEAKER_01]: Oder wo ich zum Beispiel noch ordentliche Schwarz-Katz mache oder wie falsch ich Postgre und PostgreSQL und Co ausgesprochen habe oder wie man in Kymitell Backups mit PG-Damp oder MySQL-Damp macht.
[SPEAKER_01]: Das war's von uns, vielen Dank und bis zum nächsten Woche.
[SPEAKER_01]: Bye bye.